Python 使用PIL修改然后保存TIFF返回错误
TLDR;我正在尝试拍摄TIFF,调整大小,然后保存。但是,它返回一个错误。如果我将保存的文件类型更改为png或jpg,则效果很好 系统:Windows7 尝试同时使用Python3.4和2.7 代码: 我需要调整TIFF的大小,因为我正在使用tesseract ocr,并调整图像大小以获得更好的输出。该计划似乎与TIFF合作效果最佳 我收到的错误是:Python 使用PIL修改然后保存TIFF返回错误,python,python-imaging-library,pillow,Python,Python Imaging Library,Pillow,TLDR;我正在尝试拍摄TIFF,调整大小,然后保存。但是,它返回一个错误。如果我将保存的文件类型更改为png或jpg,则效果很好 系统:Windows7 尝试同时使用Python3.4和2.7 代码: 我需要调整TIFF的大小,因为我正在使用tesseract ocr,并调整图像大小以获得更好的输出。该计划似乎与TIFF合作效果最佳 我收到的错误是: _TIFFVSetField: c:\temp\biggerfile.tif: Bad value 2 for "ExtraSamples" t
_TIFFVSetField: c:\temp\biggerfile.tif: Bad value 2 for "ExtraSamples" tag.
Traceback (most recent call last):
File "step1.py", line 15, in <module>
imB.save(saved)
File "C:\Python34\lib\site-packages\PIL\Image.py", line 1684, in save
save_handler(self, fp, filename)
File "C:\Python34\lib\site-packages\PIL\TiffImagePlugin.py", line 1185, in _save
e = Image._getencoder(im.mode, 'libtiff', a, im.encoderconfig)
File "C:\Python34\lib\site-packages\PIL\Image.py", line 430, in _getencoder
return encoder(mode, *args + extra)
RuntimeError: Error setting from dictionary
\u TIFFVSetField:c:\temp\biggerfile.tif:ExtraSamples标记的错误值2。
回溯(最近一次呼叫最后一次):
文件“step1.py”,第15行,在
imB.save(已保存)
文件“C:\Python34\lib\site packages\PIL\Image.py”,第1684行,保存
保存\u处理程序(self、fp、filename)
文件“C:\Python34\lib\site packages\PIL\TiffImagePlugin.py”,第1185行,保存
e=图像。_getencoder(im.mode,'libtiff',a,im.encoderconfig)
文件“C:\Python34\lib\site packages\PIL\Image.py”,第430行,在_getencoder中
返回编码器(模式,*args+extra)
RuntimeError:字典中的错误设置
谢谢 尝试安装libtiff
看来正是这个错误阻碍了你。它正在尝试访问libtiff,但您没有安装它,因此它失败了 在使用PIL将多个图像合并为一个图像并添加标签时也存在同样的问题。
我可以通过将.tif文件转换为MS-Paint中的.png文件来轻松解决这个问题(请不要因为我使用MS:D而讨厌我)。最终合并图像的质量并没有降低。这段代码适合我。我能想到的唯一一件事就是你没有一个合适的TIFF编码器,或者它在
.tif
上绊倒了。您是否尝试过在文件名中将其更改为.tiff
?在linux上,使用.tif
就可以了,但您永远不知道。保存时会发生错误,一个名为\u getencoder
的方法试图返回无效数据,因此我假设它与文件名或编码器有关。我在windows上执行此操作,但我同时尝试了3.4和2.7。我试过使用.tiff和没有扩展名和“TIF”的文件名。我认为错误指向。PIL能否在加载后(调整大小之前)立即将图像重新保存为tif?也许你试着摆脱这些会绊倒PIL的数据。你可以试着用枕头代替PIL,首先,是的,总是用枕头代替PIL。
_TIFFVSetField: c:\temp\biggerfile.tif: Bad value 2 for "ExtraSamples" tag.
Traceback (most recent call last):
File "step1.py", line 15, in <module>
imB.save(saved)
File "C:\Python34\lib\site-packages\PIL\Image.py", line 1684, in save
save_handler(self, fp, filename)
File "C:\Python34\lib\site-packages\PIL\TiffImagePlugin.py", line 1185, in _save
e = Image._getencoder(im.mode, 'libtiff', a, im.encoderconfig)
File "C:\Python34\lib\site-packages\PIL\Image.py", line 430, in _getencoder
return encoder(mode, *args + extra)
RuntimeError: Error setting from dictionary
File "C:\Python34\lib\site-packages\PIL\TiffImagePlugin.py", line 1185, in _save
e = Image._getencoder(im.mode, 'libtiff', a, im.encoderconfig)