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
.