Невозможно просмотреть изображения tiff в Kivy - PullRequest
1 голос
/ 22 сентября 2019

проблема
Я могу загрузить фотографии с помощью модуля Image() в киве.Но по какой-то причине я не могу загрузить файлы .tif в kivy.Когда источник изображения '..\pics\lugia.png', изображение загружается идеально.Но если источником является '..\pics\snorlax.tif', я просто получаю это белое поле и ошибку:

[WARNING] [Image       ] Unable to load image <C:\Users\path\pics\snorlax.tif>
[ERROR  ] [Image       ] Error loading texture ..\pics\snorlax.tif

код

from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.clock import Clock
from kivy.uix.image import Image

class ContainerBox(BoxLayout):
    def __init__(self, **kwargs):
        super(ContainerBox, self).__init__(**kwargs)
        self.orientation = 'vertical'
        #self.picture = Image(allow_stretch=True, source='..\pics\lugia.png')
        self.picture = Image(allow_stretch=True, source='..\pics\snorlax.tif')
        Clock.schedule_once(lambda dt: self.add_widget(self.picture), timeout=0.1)


class SimpleImage(App):
    def build(self):
        return ContainerBox()

if __name__ == '__main__':
    SimpleImage().run()

технические данные

  • Изображения взяты с veekun.com (собственность nintendo и т. д.).
  • Все изображения размером 64 x 64Я просто экспортировал некоторые из них в формат TIFF.Таким образом, размер изображения не должен быть проблемой.
  • Я использую Kivy версии 1.11.0rc1
  • Согласно Anaconda, виртуальная среда работает под управлением Python 3.5.6
  • Iя запускаю это через PyCharm в Windows 7
  • У меня sdl2_image версия 2.0.2 build 0. Согласно странице sdl2_image, sdl2_image поддерживает tiff начиная с версии 1.2.5.
  • У меня есть версия libtiff4.0.9
  • изменив расширение файла с '.tif' на '.tiff'

мой вопрос к вам
Я что-то не так делаюили Kivy просто не поддерживает формат TIFF?

1 Ответ

0 голосов
/ 29 сентября 2019

Вам нужно создать правильную установку
Я использовал anaconda для установки kivy, и я не очень тщательно установил зависимости.Поэтому мне пришлось создать новую виртуальную установку Python.

Примечание: это для Python версии 3.5 или выше.Также я хочу, чтобы вы прямо заявили, что установка Python будет создавать эту среду.Насколько мне известно, нет веских причин для этого.

Windows

  1. (необязательно) найти, где Python установлен для вас.
    Пуск Windowsкомандная строка.
    C: \ Users \ H> python
    import sys, os
    os.path.dirname(sys.executable)
    C: \ Users \ H \ AppData \ Local \ Programs \ Python \ Python36
    поэтому моя установка на python находится в C: \ Users \ H \ AppData \ Local \ Programs \ Python \ Python36 \ python
  2. Подготовьте место для вашей новой виртуальной среды.
    Я создал папку с именем "venvs""в моем домашнем каталоге.
    C: \ Users \ H \ venvs
  3. Создать новую виртуальную среду.Я назову мой "env1".
    Запустите командную строку Windows.
    , если вы сделали шаг 1
    C: \ Users \ H> C:\Users\H\AppData\Local\Programs\Python\Python36\python -m venv C:\Users\H\venvs\env1
    , если вы не сделали шаг 1
    C: \ Users \ H> python -m venv C:\Users\H\venvs\env1
  4. Активировать новую виртуальную среду
    C: \ Users \ H> C:\Users\H\venvs\env1\Scripts\activate
  5. Установить зависимости
    (env1) C: \ Users \ H> python -m pip install docutils pygments pypiwin32 kivy_deps.sdl2==0.1.22 kivy_deps.glew==0.1.12
  6. Установить kivy
    (env1) C: \ Users \ H> python -m pip install kivy==1.11.1
  7. PyCharm
    Если вы используете PyCharm, перейдите в «Файл»> «Настройки»
    В меню настроек «Проект»> «Интерпретатор проекта»
    Нажмите на шестерню> Добавить
    . В меню «Добавить интерпретатора Python» выберите «Существующая среда», затем установитеинтерпретатор для местоположения вашей новой виртуальной среды.
    Мой был C: \ Users \ H \ venvs \ env1 \ Scripts \ python.exe.
    Нажмите ОК.Нажмите Применить в меню настроек.Как только вы нажмете «Хорошо», ваш скрипт сможет просматривать файлы TIFF.
...