错误地裁剪图片

时间:2017-03-14 04:41:09

标签: python django

获得裁剪图像的代码

x = int(request.POST.get('x'))
y = int(request.POST.get('y'))
h = int(request.POST.get('h'))
w = int(request.POST.get('w'))

user = RegModel.objects.get(id=request.user.id)

user.cropping.delete(save=True)

picture_copy = ContentFile(user.image.read())
new_picture_name = user.image.name.split("/")[-1]
user.cropping.save(new_picture_name, picture_copy)

image = Image.open(user.cropping)
cropped_image = image.crop((x, y, w + x, h + y))
resized_image = cropped_image.resize((200, 200), Image.ANTIALIAS)
resized_image.save(user.cropping.path)

在我的模板中,jquery设置了crope图像x,y,width,height的参数,并将其发送给服务器。 Jquery为我展示了如何看起来歪曲的图像,但服务器后端图像上的图像错误看起来不正确。我的地方在哪里?

1 个答案:

答案 0 :(得分:0)

image.crop()需要一个边界框元组,

  

该框是一个4元组,用于定义左,上,右和下像素坐标。

目前,假设正x和y,边界框的最后两个元素w + x和h + y大于图像尺寸!这就是为什么你的图片的右边和底部有黑边!

根据所需的结果以及输入x和y的准确程度,您可以尝试(x,y,wx,wy),或者(x / 2,y / 2,w - x / 2,h) - y / 2)。