質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

91.37%

  • Python

    3802questions

    Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

  • MacOS(OSX)

    1358questions

    MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

  • Python 2.7

    923questions

    Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

[python2.7][kivy]別ディレクトリから画像を呼び出し並べると<.DS_Store>が表示されてしまう

解決済

回答 1

投稿 2017/11/29 11:34

  • 評価
  • クリップ 0
  • VIEW 32

night9071

score 7

前提・実現したいこと

別ディレクトリにある画像を並べて表示することができました。
しかし、<.DS_Store>のエラーが出てかつ白い画像らしきものが表示されます。
if文で、<.png><.jpg><.jpeg>以外のファイルは表示しないはずなのですが…
if文がおかしいのでしょうか、よろしくお願いします。

エラーコード

[INFO   ] [GL          ] Using the "OpenGL ES 2" graphics system
[INFO   ] [GL          ] Backend used <gl>
[INFO   ] [GL          ] OpenGL version <2.1 ATI-10.2.8>
[INFO   ] [GL          ] OpenGL vendor <ATI Technologies Inc.>
[INFO   ] [GL          ] OpenGL renderer <ATI Radeon HD 4670 OpenGL Engine>
[INFO   ] [GL          ] OpenGL parsed version: 2, 1
[INFO   ] [GL          ] Shading version <1.20>
[INFO   ] [GL          ] Texture max size <8192>
[INFO   ] [GL          ] Texture max units <16>
[INFO   ] [Window      ] auto add sdl2 input provider
[INFO   ] [Window      ] virtual keyboard not allowed, single mode, not docked
[INFO   ] [Text        ] Provider: sdl2
[INFO   ] [Base        ] Start application main loop
[INFO   ] [GL          ] NPOT texture support is available
[ERROR  ] [Image       ] Error loading texture ./page/gallery/.DS_Store

該当のソースコード

# -*- coding: utf-8 -*-
import kivy
kivy.require('1.7.3')
from kivy.lang import Builder
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.widget import Widget
from kivy.core.window import Window
from kivy.properties import StringProperty,ListProperty
#Window.clearcolor=[0.999,0.89,0.999,1]
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.graphics import Rectangle
from kivy.properties import NumericProperty

import sys
from kivy.core.text import LabelBase, DEFAULT_FONT
from kivy.resources import resource_add_path

from glob import glob
from random import randint
from os.path import join, dirname
from kivy.logger import Logger
from kivy.uix.scatter import Scatter

#OpenCV
import os
import numpy as np
import cv2
import re

# デフォルトに使用するフォントを変更する
resource_add_path('./fonts')
LabelBase.register(DEFAULT_FONT, 'mplus-2c-regular.ttf') 
#日本語が使用できるように日本語フォントを指定する
class Picture(Widget):  #画像の表示
    source = StringProperty(None)
class Tops3(Widget):     
    hogehoge = StringProperty()
    def __init__(self, **kwargs):
        super(Tops3, self).__init__(**kwargs)
        data_dir_path = u"./page/gallery/"
        file_list = os.listdir(r'./page/gallery/')
        curdir = dirname(__file__)
        pos_x = 40
        pos_y = 300
        for file_name in file_list:
            root, ext = os.path.splitext(file_name)
            pos_x += 100
            if ext == u'.png' or u'.jpeg' or u'.jpg' :
                picture = Picture(source= data_dir_path + file_name,rotation=randint(-30, 30),x = pos_x,y = pos_y)
                self.add_widget(picture)         
    def buttomClickedMenu(self):    #トップページに戻る
        self.clear_widgets()
        sys.path.append('../')
        from main import TextWidget
        menu = TextWidget()
        self.add_widget(menu)
Builder.load_string(r'''
<Tops3>:
    Button:
        text:'<TOPに戻る'        
        pos:5,547
        size:200,50
        on_press:root.buttomClickedMenu()

<Picture>:
    # each time a picture is created, the image can delay the loading
    # as soon as the image is loaded, ensure that the center is changed
    # to the center of the screen.
    on_size: self.center = win.Window.center
    #size: image.size
    size_hint: None, None
    Image:
        id: image1
        source: root.source
        pos:root.x,root.y
''')

補足情報(言語/FW/ツール等のバージョンなど)

python2.7
kivy
MAC

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+1

ext == u'.png' or u'.jpeg' or u'.jpg'

(ext == u'.png') or (u'.jpeg') or (u'.jpg')
になって、後ろの2つはTrueなので。

ext in [u'.png', u'.jpeg', u'.jpg']
にするとどうでしょう。

投稿 2017/11/29 11:49

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/11/29 12:02

    解決できました!
    ありがとうございます

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

ただいまの回答率

91.37%

関連した質問

同じタグがついた質問を見る

  • Python

    3802questions

    Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

  • MacOS(OSX)

    1358questions

    MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

  • Python 2.7

    923questions

    Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。