无法在 Kivy 中查看 tiff 图像

2024-02-09

problem
我可以使用以下命令加载图片Image()kivy 中的模块。但由于某种原因,我无法将 .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

code

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()

技术细节

  • 图片来自维坤网 https://veekun.com/dex/downloads(任天堂等的财产)。
  • 所有图像均为 64 x 64。我刚刚将其中一些导出为 TIFF 格式。所以图像大小不应该是问题。
  • 我使用的是 Kivy 版本 1.11.0rc1
  • 据Anaconda称,虚拟环境运行的是Python 3.5.6
  • 我在 Windows 7 上通过 PyCharm 运行它
  • 我有 sdl2_image 版本 2.0.2 build 0。根据 sdl2_image 页面,sdl2_image 从版本 1.2.5 开始支持 tiff。
  • 我有 libtiff 版本 4.0.9
  • 将文件扩展名从“.tif”更改为“.tiff”

我问你的问题
我做错了什么,还是 Kivy 不支持 TIFF 格式?


您需要创建正确的安装
我使用 anaconda 来安装 kivy,但我并没有非常彻底地正确安装依赖项。所以我必须创建一个新的虚拟 python 安装。

笔记: 这适用于 python 3.5 或更高版本。 另外,我会让你明确说明什么 python 安装将创建这个环境。据我所知,没有充分的理由这样做。

Windows

  1. (可选)找到 python 的安装位置。
    启动 Windows 命令提示符。
    C:\用户\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:\用户\H\venvs
  3. 创建新的虚拟环境。我将我的命名为“env1”。
    启动 Windows 命令提示符。
    如果您执行了步骤 1
    C:\用户\H>C:\Users\H\AppData\Local\Programs\Python\Python36\python -m venv C:\Users\H\venvs\env1
    如果您没有执行步骤 1
    C:\用户\H>python -m venv C:\Users\H\venvs\env1
  4. 激活新的虚拟环境
    C:\用户\H>C:\Users\H\venvs\env1\Scripts\activate
  5. 安装依赖项
    (env1) C:\用户\H>python -m pip install docutils pygments pypiwin32 kivy_deps.sdl2==0.1.22 kivy_deps.glew==0.1.12
  6. 安装kivy
    (env1) C:\用户\H>python -m pip install kivy==1.11.1
  7. PyCharm
    如果您使用的是 PyCharm,请转到“文件”>“设置”
    从设置菜单项目>项目解释器
    单击齿轮>添加
    在“添加 Python 解释器”菜单中选择“现有环境”,然后将解释器设置为新虚拟环境的位置。
    我的是 C:\Users\H\venvs\env1\Scripts\python.exe。
    单击“确定”。 点击设置菜单中的应用。单击“确定”后,您的脚本应该能够查看 TIFF 文件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法在 Kivy 中查看 tiff 图像 的相关文章

随机推荐

  • Ruby - 将格式化日期转换为时间戳

    我需要将日期字符串转换为 Unix 时间戳格式 我从 API 获取的字符串如下所示 2015 05 27T07 39 59Z with tr i get 2015 05 27 07 39 59 这是一种非常常规的日期格式 尽管如此 Ruby
  • python.exe fastcgi进程意外退出

    我有一些原因不得不使用django在 Windows 机器上 我想知道如何配置django on a windows sesrver 2012 r2 with iis 8 5 所以我按照教程进行操作here http blog mattwo
  • 如何在运行时获取JUnit 4中的测试用例名称? [复制]

    这个问题在这里已经有答案了 我想在执行 JUnit 测试时进行一些日志记录 在 JUnit 3 x 中 无论测试用例如何实例化 获取当前运行的测试用例的名称总是很容易 public void testFoo throws Exception
  • 如何编组/解组 ContentValues 以将泛型类型插入 ContentProvider?

    我想将通用 POJO 放入 ContentValues 中并在 ContentProvider 中解组它 我一直在绞尽脑汁地思考 Parcelables ContentValues 和插入 SQLite 关于 http njzk2 word
  • Android 推荐跟踪不适用于 Google Play

    我正在尝试实施对 Google Play 下载的推荐跟踪 在上传到 Google Play 之前 当我尝试使用下面的脚本测试应用程序时 它工作正常 并且我收到了推荐字符串 adb shell am broadcast a com andro
  • vml剪贴蒙版

    我正在尝试在 VML 中创建一个剪贴蒙版 它对应于clip path在 SVG 中 那可能吗 基于我尝试绘制形状的大量但相当有限的示例
  • 二进制字节数组加 1

    我试图将 1 添加到包含二进制数的字节数组中 它适用于某些情况 但不适用于其他情况 我无法将数组转换为整数并向其加一 我正在尝试对数组中的数字进行加法 如果有人可以请指出我在哪里搞砸了 有效的测试用例 1111 0 11 编辑 我明白如何在
  • 无需 RStudio 将 Rmarkdown 转换为 PDF

    我想转换一个 Rmd记录为 PDFwithout rstudio questions tagged rstudio可用 目前的方法 当前的方法遵循以下步骤 Rmd文件被传递到knitr knit input report Rmd 得到的md
  • Firestore 安全规则仅允许特定字段[重复]

    这个问题在这里已经有答案了 我正在尝试实施安全规则来限制用户只能访问文档中的特定字段 我的数据结构是这样的 document name John dob 1994 email email protected cdn cgi l email
  • 拖放文件属性为只读

    我创建了一个附加属性 它注册拖放事件并请求操作 移动 链接 复制 UIElement dragablecontrol d as UIElement if dragablecontrol null dragablecontrol AllowD
  • 本机 int 类型和 numpy.int 类型有什么区别?

    您能否帮助理解本机 int 类型和 numpy int32 或 numpy int64 类型之间的主要区别 如果有 有几个主要区别 首先 Python 整数的大小是灵活的 至少在 Python 3 x 中 这意味着它们可以增长以容纳任意数量
  • 使用Java从网页中提取数据?

    我正在尝试用 Java 编写我的第一个程序 目标是编写一个程序来浏览网站并为我下载文件 但是 我不知道如何使用Java与互联网交互 谁能告诉我要查找 阅读哪些主题或推荐一些好的资源 最简单的解决方案 不依赖于任何第三方库或平台 是创建一个指
  • 自定义元素是否有效 HTML5?

    我一直无法找到自定义标签在 HTML5 中是否有效的明确答案 如下所示
  • Google Drive API 与 iOS 使用应用程序服务帐户

    我正在致力于实现一个 iOS 应用程序 该应用程序将从 Google Drive 文档中提取内容 该文档对于每个客户来说都是相同的 并且与用户的 Google 帐户完全分开 我按照教程观看了有关如何将 SDK 用于 Xcode 项目的视频
  • 在 C# 中检查字符串是否仅包含数字的最快方法

    我知道如何检查字符串是否仅包含数字的几种方法 RegEx int parse tryparse 循环等 谁能告诉我什么fastest检查方法是 我只需要CHECK值 无需实际解析它 我所说的 数字 特指 ASCII 数字 0 1 2 3 4
  • Magento - 使用更新 XML 删除块

    如何使用布局 xml 文件删除已存在的块 具体来说 我想从名为 top switches 的块中删除名为 currency 的块 它被插入到directory xml 文件中 如下所示
  • 使用 LINQ,如何从列表中查找具有给定属性值的对象?

    我有一堂课叫Questions This Questions有属性QuestionID and QuestionAnswer 迭代此过程时List of Question在 foreach 中 我必须找到 QuestionID 12 如果我
  • Sqlite C++ 中的预准备语句如何工作

    我不知道如何在我的 Sqlite3 代码中实现准备好的语句 include
  • C# pinvoke 封送联合

    我在将 C Union 转换为 C 时遇到一些问题 这是联盟的定义 union Info char varChar 8 short varShort 4 int varInteger 2 float varFloat 2 double va
  • 无法在 Kivy 中查看 tiff 图像

    problem 我可以使用以下命令加载图片Image kivy 中的模块 但由于某种原因 我无法将 tif 文件加载到 kivy 中 当图像源为 pics lugia png 图像加载得很好 但如果来源是 pics snorlax tif