簡體   English   中英

python:將base64編碼的png圖像轉換為jpg

[英]python: convert base64 encoded png image to jpg

我想使用python將一些base64編碼的png圖像轉換為jpg。 我知道如何從base64解碼回原始:

import base64 
pngraw = base64.decodestring(png_b64text)

但是我現在如何將其轉換為jpg? 只是將pngraw寫入文件顯然只給我一個png文件。 我知道我可以使用PIL,但我該如何做呢? 謝謝!

你可以使用PIL

data = b'''iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAIBJRE
          FUOMvN08ENgCAMheG/TGniEo7iEiZuqTeiUkoLHORK++Ul8ODPZ92XS2ZiADITmwI+sWHwi
          w2BGtYN1jCAZF1GMYDkGfJix3ZK8g57sJywteTFClBbjmAq+ESiGIBEX9nCqgl7sfyxIykt
          7NUUD9rCiupZqAdTu6yhXgzgBtNFSXQ1+FPTAAAAAElFTkSuQmCC'''

import base64
from PIL import Image
from io import BytesIO

im = Image.open(BytesIO(base64.b64decode(data)))
im.save('accept.jpg', 'JPEG')

在非常舊的Python版本(2.5及更早版本)中,將b'''替換為'''from io import BytesIO替換from StringIO import StringIO

從PIL教程開始:

要保存文件,請使用Image類的save方法。 保存文件時,名稱變得很重要。 除非您指定格式,否則庫使用文件擴展名來發現要使用的文件存儲格式。

將文件轉換為JPEG

import os, sys
import Image

for infile in sys.argv[1:]:
    f, e = os.path.splitext(infile)
    outfile = f + ".jpg"
    if infile != outfile:
        try:
            Image.open(infile).save(outfile)
        except IOError:
            print "cannot convert", infile

所以你要做的就是將文件擴展名設置為.jpeg.jpg ,它會自動轉換圖像。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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