gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 08:52:01 26 4
gpt4 key购买 nike

问题
我可以使用 kivy 中的 Image() 模块加载图片。 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 的库往往会导致此问题。

代码

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)

警告停止了。

关于Python:TIFFReadDirectory 警告:带有标签的未知字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58279121/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com