当我尝试裁剪图像时,我得到以下错误。这是我的代码。 由于我的图像处于png格式的良好状态,因此我无法理解错误。什么错了?
from __future__ import print_function
from wand.image import Image
f = 'image1.png'
with Image(filename=f) as img:
print('width =', img.width)
print('height =', img.height)
#left,top,right,bottom
x=img.crop(275, 347, 147, 239)
x.size
print(x.size)
我遇到了这个错误
x=img.crop(275, 347, 147, 239)
File "/usr/local/lib/python2.7/dist-packages/wand/image.py", line 543, in wrapped
result = function(self, *args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/wand/image.py", line 1504, in crop
raise ValueError('image width cannot be zero')
ValueError: image width cannot be zero
答案 0 :(得分:1)
Image.crop()
按顺序选择左,上,右和下偏移量。如文档中的图表所示,右侧和底部偏移位于左侧和顶部,不是右侧和底部:
+--------------------------------------------------+
| ^ ^ |
| | | |
| top | |
| | | |
| v | |
| <-- left --> +-------------------+ bottom |
| | ^ | | |
| | <-- width --|---> | | |
| | height | | |
| | | | | |
| | v | | |
| +-------------------+ v |
| <--------------- right ----------> |
+--------------------------------------------------+
在您的代码img.crop(275, 347, 147, 239)
中,147位于275左侧,239位于347位以上,这就是ValueError
被提升的原因。