尝试使用以下方法调整图像大小(重量> 100 MB)
>>> from PIL import Image
>>> image = Image.open(path_to_the_file)
>>> new_image = image.resize((200, 200))
并收到ValueError:tile无法扩展到图像外部。
原始图像的尺寸为
>>> image.size
>>> (4922, 3707)
我在缩略图,旋转等时收到的错误。
我做错了什么?
编辑: 使用ImageMagic检查图像:
$ identify file.tif
file.tif[0] TIFF 4922x3707 4922x3707+0+0 32-bit Grayscale Gray 31.23MB 0.000u 0:00.009
file.tif[1] TIFF 2461x1854 2461x1854+0+0 32-bit Grayscale Gray 31.23MB 0.000u 0:00.000
filetif[2] TIFF 1231x927 1231x927+0+0 32-bit Grayscale Gray 31.23MB 0.000u 0:00.000
file.tif[3] TIFF 616x464 616x464+0+0 32-bit Grayscale Gray 31.23MB 0.000u 0:00.000
file.tif[4] TIFF 308x232 308x232+0+0 32-bit Grayscale Gray 31.23MB 0.000u 0:00.000
file.tif[5] TIFF 154x116 154x116+0+0 32-bit Grayscale Gray 31.23MB 0.000u 0:00.000
identify: Unknown field with tag 33550 (0x830e) encountered. `TIFFReadDirectory' @ warning/tiff.c/TIFFWarnings/881.
identify: Unknown field with tag 33922 (0x8482) encountered. `TIFFReadDirectory' @ warning/tiff.c/TIFFWarnings/881.
identify: Unknown field with tag 34735 (0x87af) encountered. `TIFFReadDirectory' @ warning/tiff.c/TIFFWarnings/881.
identify: Unknown field with tag 34736 (0x87b0) encountered. `TIFFReadDirectory' @ warning/tiff.c/TIFFWarnings/881.
答案 0 :(得分:0)
您应该安装pytho-resize-image包。
一个例子
from PIL import Image
from resizeimage import resizeimage
with open('acajeb-image.jpeg', 'r+b') as f:
with Image.open(f) as image:
cover = resizeimage.resize_cover(image, [200, 200])
cover.save('test-image-cover.jpeg', image.format)
您可以使用
安装包pip install python-resize-image
答案 1 :(得分:0)
尝试添加Image.ANTIALIAS
参数:
new_image = image.resize((200, 200), Image.ANTIALIAS)
这在我之前的一个项目中对我有用。
答案 2 :(得分:0)
问题可能来自docs:
请注意,当前版本的PIL中的双线性和双三次滤波器不适合大的下采样率(例如,在创建缩略图时)。你应该使用ANTIALIAS,除非速度比质量更重要。
在这种情况下,请添加代码Image.ANTIALIAS
from PIL import Image
image = Image.open(path_to_the_file)
new_image = image.resize((200, 200) Image.ANTIALIAS)
现在应该这样做。