上一篇博客--剪切图片的某个部分,发现一个巨大的问题
好像画矩形的时候,只能从左上角到右下角,其他地方开始的话,用PIL中Image的crop方法会报错
其中源码
if box[2] < box[0]:
raise ValueError("Coordinate 'right' is less than 'left'")
elif box[3] < box[1]:
raise ValueError("Coordinate 'lower' is less than 'upper'")
就是说,必须是要左上角和右下角的坐标。。。
def seek_place(self,path,window_name,show=False):
a=seek_place(path=path,name=window_name,show=show).get_data()
# 可以参考上篇播客 ---剪切图片的某个部分
# (seek_place是一个类)
return a
# a 就是返回的数据data
def crop_picture(self,path,rename,window_name='图片',show=False):
"""
:param path: 图片的路径
:param window_name: 窗口的名字
:param rename: 剪切图片的名字(1.jpg)
:param show: 是否展示得到的数据
:return: self
"""
data=self.seek_place(path,window_name,show=show)
# self.seek_place就是上面的方法,名字重复了,可以运行的(=.=)(=.=)(=.=)
i = data[0][0]
box = (min(i[0], i[2]), min(i[1], i[3]), max(i[0], i[2]), max(i[1], i[3]))
# 修改值,
img=Image.open(path)
img=img.crop(box)
img.save(rename)
return self
# 返回本身,为了链式调用
不想演示了。可以运行
如果有其他bug再修改