TLDR hatasını döndürür; Bir TIFF almaya çalışıyorum, yeniden boyutlandırıyorum, sonra kaydedin. Ancak bir hata döndürür. Kaydedilen dosya türünü png veya jpg olarak değiştirirseniz bu iyi çalışır.PIL'i değiştirmek ve ardından bir TIFF'yi kaydetmek
Sistem: Windows 7 Her iki Python 3.4 ve 2.7'yi kullanarak çalıştı.
Kodu: Ben ocr-teserakt kullanarak ve daha iyi bir verim almak için görüntüyü yeniden boyutlandırma olduğum için
from PIL import Image
try: #test file exists
im = Image.open(r"c:\temp\file.tif")
except:
print("Error opening image")
multiply = 5 #how much bigger
processing = tuple([multiply*x for x in im.size]) #maths
saved = (r"c:\temp\biggerfile.tif") #save location
imB = im.resize((processing)) #resizing
imB.save(saved) #saving
Bir TIFF boyutlandırmak gerekir. Program TIFF ile en iyi şekilde çalışıyor gibi görünüyor.
aldığım hatadır:
_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
teşekkürler!
Bu kod benim için çalışıyor. Düşünebildiğim tek şey, ya tiff'ler için uygun bir kodlayıcınız yok ya da belki de '.tif' üzerinde çalışıyor. Dosya adlarınızda '.tiff 'olarak değiştirmeyi denediniz mi? Linux üzerinde sadece .tif ile gayet iyi, ama asla bilemezsiniz. Kaydettiğinizde hata meydana geliyor ve '_getencoder' adlı bir yöntem geçersiz verileri döndürmeye çalışıyor, bu yüzden dosya adı veya kodlayıcıyla bir ilgisi olduğunu varsayalım. – DuckPuncher
Pencerelerde bunu yapıyorum, ancak 3.4 ve 2.7'yi de denedim. Uzantısı ve "TIF" olmadan .tiff ve dosya adını kullanmayı denedim. – Gaudard
Hatanın [ilişkilendirilmemiş alfa verileri] olduğunu düşünüyorum (http://www.awaresystems.be/imaging/tiff/tifftags/extrasamples.html). PIL, resmi tif olarak (resize etmeden önce) yüklemeden hemen sonra yeniden kaydedebilir mi? Belki de PIL'i gezen bu veriden kurtulmaya çalışırsınız. –