python:将base64编码的png图像转换为jpg

python:将base64编码的png图像转换为jpg

问题描述:

我想使用python将一些base64编码的png图像转换为jpg。我知道如何从base64解码回原始:

I want to convert some base64 encoded png images to jpg using python. I know how to decode from base64 back to raw:

import base64 
pngraw = base64.decodestring(png_b64text)

但是如何将此转换为jpg?只是将pngraw写入文件显然只给我一个png文件。 我知道我可以使用PIL,但我该怎样做呢?谢谢!

but how can I convert this now to jpg? Just writing pngraw to a file obviously only gives me a png file. I know I can use PIL, but HOW exactly would I do it? Thanks!

你可以使用 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及更早版本) ),从io import BytesIO替换 b''''''来自StringIO的code> 导入StringIO

In very old Python versions (2.5 and older), replace b''' with ''' and from io import BytesIO with from StringIO import StringIO.