[英]Save Uploaded Image as PNG
在我的Django應用中,用戶可以上傳圖像。 我想將每個上傳的圖片另存為PNG。 我一直在嘗試使用PIL進行此操作,但是它不起作用。 它似乎仍保存為原始圖像類型(無論用戶將其上傳為什么)。 我究竟做錯了什么?
if form.cleaned_data['dataset_image']:
# dataset.dataset_image = form.cleaned_data['dataset_image']
name = 'dataset%s.png' % (dataset.id)
size = (200, 200)
try:
im = Image.open(form.cleaned_data['dataset_image'])
im.save(name, 'PNG')
print "saved file: ", im
except IOError:
# dont' save the image
pass
當我上載jpg(我想將其轉換為png)時,打印語句給出以下內容: saved file: <PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=628x419 at 0x107354F80>
打開文件時,print語句引用Image
對象。 它使用了JpegImagePlugin
類,因為它是一個jpeg圖像。 但是,當調用方法save()
,將根據請求的文件名的擴展名(在本例中為png save()
保存圖像。
如果您不確定,請嘗試此操作。
try:
im = Image.open(form.cleaned_data['dataset_image'])
im.save(name)
png_img = Image.open(name)
print "saved file: ", png_img # it's more clean to print `png_img.format`
順便說一句,在這種情況下,只需調用im.save(name)
,因為name
已經具有擴展名,並且該方法將確定您是否需要該格式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.