Python:TIFFReadDirectory 警告:带有标签的未知字段

2023-12-07

problem
我可以使用以下命令加载图片Image()kivy 中的模块。This这就是我如何安装 kivy 以便我可以查看 TIFF 文件。但现在每次加载 TIFF 图像时,我都会收到一个又一个弹出警告,从而中断程序。

TIFFReadDirectory warning:
unknown field with tag 18246 (0x4746)
TIFFReadDirectory warning:
unknown field with tag 18249 (0x4749)
TIFFReadDirectory warning:
unknown field with tag 20752 (0x5110)
TIFFReadDirectory warning:
unknown field with tag 20753 (0x5111)
TIFFReadDirectory warning:
unknown field with tag 20754 (0x5112)
TIFFReadDirectory warning:
unknown field with tag 40092 (0x9c9c)
TIFFReadDirectory warning:
unknown field with tag 40093 (0x9c9d)
TIFFReadDirectory warning:
unknown field with tag 40094 (0x9c9e)

澄清一下,这些警告都没有出现在 python 日志中。这些都是在我的程序显示 TIFF 文件之前出现的单独警告框。我听说一个名为 libtiff 的库往往会导致此问题。

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

技术细节

  • 图片可以下载here.
  • 我修改了这个文件的exif数据。我可能在文件中添加了一些非标准标签。但我对 jpg 文件和 png 文件做了同样的事情。这些并没有引起像这样烦人的弹出窗口。
  • 我使用的是Kivy版本1.11.1
  • 据Anaconda称,虚拟环境运行的是Python 3.5.6
  • 我在 Windows 7 上通过 PyCharm 运行它
  • 这些是来自 python 日志的详细信息:
[INFO   ] [deps        ] Successfully imported "kivy_deps.glew" 0.1.12
[INFO   ] [deps        ] Successfully imported "kivy_deps.sdl2" 0.1.22
[INFO   ] [Kivy        ] v1.11.1
[INFO   ] [Kivy        ] Installed at "C:\Users\H\venvs\env1\lib\site-packages\kivy\__init__.py"
[INFO   ] [Python      ] v3.6.0 (v3.6.0:41df79263a11, Dec 23 2016, 08:06:12) [MSC v.1900 64 bit (AMD64)]
[INFO   ] [Python      ] Interpreter at "C:\Users\H\venvs\env1\Scripts\python.exe"
[INFO   ] [Factory     ] 184 symbols loaded
[INFO   ] [Image       ] Providers: img_tex, img_dds, img_sdl2, img_gif (img_pil, img_ffpyplayer ignored)
[INFO   ] [Loader      ] using a thread pool of 2 workers
[INFO   ] [Text        ] Provider: sdl2
[INFO   ] [Window      ] Provider: sdl2
[INFO   ] [GL          ] Using the "OpenGL" graphics system
[INFO   ] [GL          ] Backend used <sdl2>
[INFO   ] [GL          ] OpenGL version <b'4.0.0 - Build 9.18.10.3204'>
[INFO   ] [GL          ] OpenGL vendor <b'Intel'>
[INFO   ] [GL          ] OpenGL renderer <b'Intel(R) HD Graphics 4600'>
[INFO   ] [GL          ] OpenGL parsed version: 4, 0
[INFO   ] [GL          ] Shading version <b'4.00 - Build 9.18.10.3204'>
[INFO   ] [GL          ] Texture max size <8192>
[INFO   ] [GL          ] Texture max units <16>
[INFO   ] [Window      ] auto add sdl2 input provider

我问你的问题
是否可以抑制这些警告?我认为它们是由 kivy 调用的某个库生成的。它甚至可能是我无法编辑的预编译代码。
我花了很长时间用 Kivy 制作一个复杂的用户界面。我真的不想放弃所有这些工作。但我可能愿意将其迁移到 C++,理论上我可以控制更多代码。这有必要甚至可能吗?


在我的脚本的开头,我添加了

import ctypes

libbytiff = ctypes.CDLL("libtiff-5.dll")
libbytiff.TIFFSetWarningHandler.argtypes = [ctypes.c_void_p]
libbytiff.TIFFSetWarningHandler.restype = ctypes.c_void_p
libbytiff.TIFFSetWarningHandler(None)

然后警告就停止了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python:TIFFReadDirectory 警告:带有标签的未知字段 的相关文章

随机推荐

  • 如何格式化 Winform 中 LostFocus 事件的所有文本框值

    我需要在失去焦点事件时向任何相关文本框值中每个数值的千位添加逗号 我创建了以下函数 public static void FormatNumerical this Control control if control is TextBox
  • 递归函数的复杂性 - 时间和空间

    我有兴趣知道如何计算递归函数的时间和空间复杂度 如排列 斐波那契 描述here 一般来说 我们可以在很多地方进行递归 而不仅仅是排列或递归 所以我正在寻找通常遵循的方法来计算时间和空间复杂度 谢谢 看一眼http www cs duke e
  • 带有 if 语句的函数中的全局变量

    好吧 我目前正在做一个用 python 制作二十一点游戏的项目 但遇到了一些麻烦 我的问题之一是我不知道何时将变量定义为全局变量 特别是在带有 if 语句的函数中 如果我在 if 语句之外有一个全局变量 我是否必须声明该变量在 if 语句内
  • 使用“import __main__”是个好习惯吗?

    我正在开发一个相对较大的 Python 应用程序 并且我希望将一些资源保留为可在多个不同模块中访问的全局变量 这些值包括版本号 版本日期 全局配置和一些资源的静态路径 我还包括了一个DEBUG由命令行选项设置的标志 以便我可以在调试模式下运
  • 需要有关流程的帮助

    当我开始像这样的过程时process Runtime getRuntime exec gnome terminal 它启动 shell 执行 我想停止 shell 执行并想从进程重定向 I O 有人能告诉我如何做到这一点吗 我的代码是 pu
  • 从 MFC 应用程序连接到 SQL Server Compact Edition (.sdf)

    我正在 Visual Studio 2008 中构建一个对纹理进行分类的 MFC 应用程序 我需要某种轻量级数据库来保存特征 只是一些双精度和字符串 这些特征可以是 在不同的计算机上携带该应用程序 能够从应用程序对其执行查询 搜索 更新 插
  • Cygwin 看到一个 Windows 看不到的文件——我想从 python 访问这个文件

    我有一个连接到 USB 的设备 它创建一个名为 Tpolling log 的日志文件 我可以通过 Cygwin 看到它 但通过 Windows 看不到它 隐藏文件设置为始终显示 我也无法从 python 访问它 我希望能够在 python
  • 在 GWT Web 应用程序中调用外部应用程序(即 Windows 计算器)

    当用户单击 GWT Web 应用程序中的按钮时 我尝试调用外部 Windows 应用程序 即 calc exe 有没有办法如何做到这一点 以下是我迄今为止已经尝试过的 1 尝试了 Runtime exec 和 ProcessBuilder
  • 使用 OpenMP 进行缩减:线性合并或日志(线程数)合并

    我有一个关于 OpenMP 缩减的一般性问题 这个问题困扰了我一段时间 我的问题是关于将部分金额合并到归约中 它可以线性地完成 也可以作为线程数的对数完成 假设我想减少一些功能double foo int i 有了 OpenMP 我就可以这
  • 是否可以覆盖表单助手?

    使用文档 我可以为我的字段的布局设置自己的助手 但我也想个性化游戏给出的一些字段 主要原因是 Twitter Bootstrap 2 我需要更改 在 checkbox scala html 中 input field args id nam
  • ReplayKit:从未进入 startRecording() 完成处理程序

    问题描述 尽管显示了 允许在 AppName 中进行屏幕录制 弹出窗口 但永远不会输入 startRecording 完成处理程序 偶尔会出现 允许在 AppName 中进行屏幕录制 弹出窗口 当我删除应用程序 重新启动设备并对项目进行清理
  • Oracle SQL - 回合 - 半场

    Oracle ROUND 函数默认 向上舍入 select 3 674 my number round 3 674 2 round on number from dual union select 3 675 my number round
  • Excel VBA 中 ExportAsFixedFormat 的 PDF 输出大小错误

    我使用 Excel 2010 和 VBA 我有以下代码 mySh PageSetup PaperSize xlPaperLetter mySh ExportAsFixedFormat Type xlTypePDF Filename file
  • 如何修复“ConnectionString 属性尚未初始化”

    当我开始我的应用程序时 我得到 ConnectionString 属性尚未初始化 网页配置
  • Phonegap Build:将图像下载到应用程序的文件夹之一

    如果我直接指定路径 我就可以下载图像 文件 存储 sdcard0 如何将图像保存到应用程序中的文件夹之一 我试过this设置应用程序路径的方法 但它对我不起作用 这是我到目前为止所使用的 如果您想将图像保存到 SD 卡 它可以工作 var
  • 有没有一种惯用的方法来缓存 Spark 数据帧?

    我有一个大型镶木地板数据集 正在使用 Spark 读取 读取后 我会筛选行的子集 这些行在应用不同转换的许多函数中使用 以下与我想要完成的逻辑相似但不完全逻辑 df spark read parquet file special rows
  • 强制/保护 POST 参数

    我的标题可能含糊不清 所以请检查下面我的情况 我有一个网络应用程序来管理员工列表 该应用程序采用中心辐射模式设置 单击员工列表中的员工会重定向到一个新窗口 显示所选员工的个人详细信息以进行可能的更新 该应用程序使用 HTTPS 通过 GET
  • 如何使用 Oauth2 使 API Gateway 的身份验证/授权过程无状态?

    在我的设计中 我有一个API网关 spring cloud api gateway 授权服务器 Oauth2 和资源服务器 微服务 我还有一个 CAS 服务器 但现在为了简单起见可以忽略它 我只是想使用API 网关来重定向客户端请求 如果用
  • SQL 查找和替换字符串的一部分

    我试图在字符串中找到某些文本 catid 18 其中除此之外每个字符串都不同 我之前在下面使用过这个查询 但它似乎只有在您知道整个字符串的情况下才有效 update TABLE NAME set FIELD NAME replace FIE
  • Python:TIFFReadDirectory 警告:带有标签的未知字段

    problem 我可以使用以下命令加载图片Image kivy 中的模块 This这就是我如何安装 kivy 以便我可以查看 TIFF 文件 但现在每次加载 TIFF 图像时 我都会收到一个又一个弹出警告 从而中断程序 TIFFReadDi