Python PIL裁剪不裁剪图片
Python PIL crop doesn't crop image
我有以下裁剪图像的功能:
def crop(original_image):
original_image = Image.open(original_image)
original_image.crop((25, 25, 50, 50))
#original_image.load()
thumb_io = StringIO.StringIO()
original_image.save(thumb_io, format='JPEG')
thumb_file = InMemoryUploadedFile(thumb_io, None, 'foo2.jpg', 'image/jpeg',
thumb_io.len, None)
return thumb_file
保存的图片是没有任何尺寸修改的原始图片。我尝试了负载而不是负载,但这并没有什么不同。
原始图像为 300 x 450。
图像没有通过任何裁剪编辑保存,我做错了什么?
看来我需要将裁剪 return 值提取到变量中:
img_io = StringIO.StringIO()
original_image = Image.open(original_image)
new_image = original_image.crop((20, 20, 125, 125))
new_image.save(img_io, format='JPEG', quality=100)
img_content = ContentFile(img_io.getvalue(), 'foo6.jpg')
return img_content
您可能需要更改行
thumb_file = InMemoryUploadedFile(thumb_io, None, 'foo2.jpg', 'image/jpeg',
thumb_io.len, None)
到
thumb_file = ContentFile(thumb_io.getvalue(), 'foo2.jpg')
我猜你打算将图像文件保存到你的数据库中
更改此行:
original_image = original_image.crop((25, 25, 50, 50))
因为crop函数的return值是一个矩形区域但是你没有保存!
我有以下裁剪图像的功能:
def crop(original_image):
original_image = Image.open(original_image)
original_image.crop((25, 25, 50, 50))
#original_image.load()
thumb_io = StringIO.StringIO()
original_image.save(thumb_io, format='JPEG')
thumb_file = InMemoryUploadedFile(thumb_io, None, 'foo2.jpg', 'image/jpeg',
thumb_io.len, None)
return thumb_file
保存的图片是没有任何尺寸修改的原始图片。我尝试了负载而不是负载,但这并没有什么不同。
原始图像为 300 x 450。
图像没有通过任何裁剪编辑保存,我做错了什么?
看来我需要将裁剪 return 值提取到变量中:
img_io = StringIO.StringIO()
original_image = Image.open(original_image)
new_image = original_image.crop((20, 20, 125, 125))
new_image.save(img_io, format='JPEG', quality=100)
img_content = ContentFile(img_io.getvalue(), 'foo6.jpg')
return img_content
您可能需要更改行
thumb_file = InMemoryUploadedFile(thumb_io, None, 'foo2.jpg', 'image/jpeg',
thumb_io.len, None)
到
thumb_file = ContentFile(thumb_io.getvalue(), 'foo2.jpg')
我猜你打算将图像文件保存到你的数据库中
更改此行:
original_image = original_image.crop((25, 25, 50, 50))
因为crop函数的return值是一个矩形区域但是你没有保存!