在Python中将数据:图像从base64转换为JPEG

问题描述 投票:0回答:2

从客户的POST提交中,我们成功收到以下格式的图像,

data:image/jpeg;base64,/9j/....
,并且正在通过以下代码生成图像文件:

@app.route('/submission', methods=('GET', 'POST'))
def submission():
    
    if request.method == 'POST':
        
        raw_image = request.form['file']
        #Problem Starts Here
        # this doesn't work either: 
        # raw_image = raw_image.replace("data:image/jpeg;base64,/9j/", '');
        with open(UPLOADED_IMAGES_DEST+'/image.jpeg', 'wb') as fh:
            fh.write(base64.decodebytes(raw_image))
        #Problem Ends Here
        return jsonify(request.form)
        
    return render_template('submission.html')

但是,图像无法打开,因为它是“无效或不受支持的格式”。我正在尝试改进转换过程,以便生成可查看的 JPEG 图像。

raw_image
的开始:

data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCADwAUADASIAAhEBAxEB/8QAHQAAAgIDAQEBAAAAAAAAAAAABQYEBwIDCAEACf/EAEwQAAEDAwMCBAQEAwUFBQQLAAECAxEABAUGEiExQQcTUWEIInGBFDKRoRVCUiOxwdHwJGJyouEJFjOSwhdDgvEmU2ODk7LDxNLU4v/EABsBAAMBAQEBAQAAAAAAAAAAA
...

python image base64
2个回答
4
投票

我获取了你的数据并对其进行了解码,它看起来非常接近我从真实文件中获取的 JPEG 标头(如下图)。没有看到任何问题,除了您必须从

/9j/4AA...
开始解码。

>>> a = '/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCADwAUADASIAAhEBAxEB/8QAHQAAAgIDAQEBAAAAAAAAAAAABQYEBwIDCAEACf/EAEwQAAEDAwMCBAQEAwUFBQQLAAECAxEABAUGEiExQQcTUWEIInGBFDKRoRVCUiOxwdHwJGJyouEJFjOSwhdDgvEmU2ODk7LDxNLU4v/EABsBAAMBAQEBAQAAAAAAAAAA'
>>> base64.b64decode(a)
'\xff\xd8\xff\xe0\x00\x10JFIF\x00\x01\x01\x00\x00\x01\x00\x01\x00\x00\xff\xdb\x00C\x00\x03\x02\x02\x03\x02\x02\x03\x03\x03\x03\x04\x03\x03\x04\x05\x08\x05\x05

这是我的真实 JPEG 图片的十六进制转储。

您必须删除

data:image/jpeg;base64,
,但不要超出范围——这会破坏图像数据。


0
投票

![一只狗](数据:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBxMTEhUTExMWFhUXGBcYGBgYGBgYGBgYGBgYGBgYGBgYHSggGBolGxYVITEhJSkrLi4uGB8zODMtNygtLisBCgoKDg0OGxAQGy0lICYvLS0 tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0

© www.soinside.com 2019 - 2024. All rights reserved.