Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用PIL修改然后保存TIFF返回错误_Python_Python Imaging Library_Pillow - Fatal编程技术网

Python 使用PIL修改然后保存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

TLDR;我正在尝试拍摄TIFF,调整大小,然后保存。但是,它返回一个错误。如果我将保存的文件类型更改为png或jpg,则效果很好

系统:Windows7 尝试同时使用Python3.4和2.7

代码:

我需要调整TIFF的大小,因为我正在使用tesseract ocr,并调整图像大小以获得更好的输出。该计划似乎与TIFF合作效果最佳

我收到的错误是:

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