2017-03-14 123 views
0

作物圖像錯誤地裁剪圖片

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) 

了代碼在用於crope圖像X,Y,寬度,高度,是我的模板jQuery的設定參數和我將其發送到服務器。 jquery爲我展示瞭如何看起來被歪曲的圖像,但是在服務器後端上的圖像被錯誤地顯示後。我的失敗在哪裏?

+0

你是什麼意思,這是不正確的? – user2896976

+0

黑色字段出現並沒有正確切出 –

+0

你能上傳圖片給我們看 – user2896976

回答

0

image.crop()期望的邊界框的元組,

的方框是4元組限定其左,上,右,下和像素座標。

目前,假設正x和y,邊界框的最後兩個元素w + x和h + y大於圖像尺寸!這就是爲什麼你的圖片右邊和底部都會出現黑邊!你可以嘗試(x,y,wx,wy)或者(x/2,y/2,w-x/2)來獲得輸入的x和y, h - y/2)。