在使用PIL的Image
类的crop
方法切割图像时如果报如下错误:
1 | AttributeError: '_idat' object has no attribute 'fileno' |
则问题是因为传入crop的box
参数超过了图像的边框. 上面第一个错误会让人误以为是图像本身的错误或者编码错误,解决该问题的过程中我尝试了在save
函数中显示指定图像格式,如'PNG'
等, 都不能解决问题.
最后查看文档中crop方法的box
参数解决了问题:
box – The crop rectangle, as a (left, upper, right, lower)-tuple.
说明传入的参数是给定的”左边位置,上边位置,右边位置,下边位置”的tuple数据类型,并且要注意右边
和下边
都要分别比左边和上边大,否则就会报上面的错误.