提高ValueError('图像宽度不能为零')ValueError:图像宽度不能为零

时间:2017-03-30 14:19:51

标签: image python-3.x crop wand

当我尝试裁剪图像时,我得到以下错误。这是我的代码。 由于我的图像处于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

1 个答案:

答案 0 :(得分:1)

Image.crop()按顺序选择左,上,右和下偏移量。如文档中的图表所示,右侧和底部偏移位于左侧和顶部,不是右侧和底部

+--------------------------------------------------+
|              ^                         ^         |
|              |                         |         |
|             top                        |         |
|              |                         |         |
|              v                         |         |
| <-- left --> +-------------------+  bottom       |
|              |             ^     |     |         |
|              | <-- width --|---> |     |         |
|              |           height  |     |         |
|              |             |     |     |         |
|              |             v     |     |         |
|              +-------------------+     v         |
| <--------------- right ---------->               |
+--------------------------------------------------+

在您的代码img.crop(275, 347, 147, 239)中,147位于275左侧,239位于347位以上,这就是ValueError被提升的原因。