image = Image.open(data)
image.thumbnail((36,36), Image.NEAREST)
將保持縱橫比結束。但我需要最終顯示像這樣的圖像:
<img src="/media/image.png" style="height:36px; width:36px" />
我可以在圖像上有透明或白色的信箱樣式嗎?
image = Image.open(data)
image.thumbnail((36,36), Image.NEAREST)
將保持縱橫比結束。但我需要最終顯示像這樣的圖像:
<img src="/media/image.png" style="height:36px; width:36px" />
我可以在圖像上有透明或白色的信箱樣式嗎?
圖像與正確的大小作爲背景粘貼到透明圖像
from PIL import Image
size = (36, 36)
image = Image.open(data)
image.thumbnail(size, Image.ANTIALIAS)
background = Image.new('RGBA', size, (255, 255, 255, 0))
background.paste(
image, (int((size[0] - image.size[0])/2), int((size[1] - image.size[1])/2))
)
background.save("output.png")
編輯:固定語法錯誤
或者這也許...(原諒意大利麪條)
from PIL import Image
def process_image(image, size):
if image.size[0] > size[0] or image.size[1] > size[1]:
#preserve original
thumb = image.copy()
thumb.thumbnail(size,Image.ANTIALIAS)
img = thumb.copy()
img_padded = Image.new("RGBA",size)
img_padded.paste(image,(int((size[0]-image.size[0])/2),int((size[1]-image.size[1])/2)))
return img_padded
對我不好 – PlagTag 2017-12-22 13:03:44
from PIL import Image
import StringIO
def thumbnail_image():
image = Image.open("image.png")
image.thumbnail((300, 200))
thumb_buffer = StringIO.StringIO()
image.save(thumb_buffer, format=image.format)
fp = open("thumbnail.png", "w")
fp.write(thumb_buffer.getvalue())
fp.close()
更新:使用Image.ANTIALIAS而不是Image.NEAREST來獲得更多的質量和壓縮圖像。 – Babu 2012-09-21 07:57:15
**注意**:請務必使用'background.save()'和* not *'image.save()' – earthmeLon 2013-09-07 22:00:39
對於Python 3,請將「/」替換爲「//」 – kuzzooroo 2015-03-29 18:49:20