簡體   English   中英

將上傳的圖片另存為PNG

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM