You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何从content-type为mime:image/jpg的API响应中获取并保存图片

将API返回的图片字符数据转为可查看JPG文件的实现方法

你拿到的/9j/开头的字符串是JPG图片的标准Base64编码结果,只需要对字符串做Base64解码,再将解码后的二进制内容写入.jpg后缀的文件,就能正常打开查看图片。

注意:如果API返回的内容自带data:image/jpeg;base64,前缀,需要先把这部分前缀剔除,再执行解码操作,否则会导致解码失败、文件损坏。

常用实现代码示例

  • Python 实现(无需第三方依赖)
import base64

# 替换为API返回的完整Base64字符串
base64_content = "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/wAALCAMABAABAREA/8QAGwABAAMBAQEBAAAAAAAAAAAAAAQFBgMHAgj/xAA4EAABBAIBAwIFAwMCBwEBAQEAAQIDBAUREgYTIRQiFRYxMkEHIzMlUWI0QkZhZXGhoqOBF1Ik/9oACAEBAAA/APyo......"
# 解码得到图片二进制数据
img_binary = base64.b64decode(base64_content)
# 以二进制写入模式保存文件
with open("result.jpg", "wb") as f:
    f.write(img_binary)

运行脚本后,同目录下生成的result.jpg就是可直接查看的图片文件。

  • Node.js 实现
const fs = require('fs');
// 替换为API返回的完整Base64字符串
const base64Content = "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/......";
// 解码为二进制Buffer
const imgBuffer = Buffer.from(base64Content, 'base64');
// 写入文件
fs.writeFileSync('result.jpg', imgBuffer);
  • 浏览器前端实现
// 替换为API返回的完整Base64字符串
const base64Content = "/9j/4AAQSkZJRgABAQAAAQABAAD/......";
// 拼接为DataURL可直接用于图片展示
const imgSrc = `data:image/jpeg;base64,${base64Content}`;

// 方式1:赋值给页面img标签直接展示
// document.getElementById('previewImg').src = imgSrc;

// 方式2:触发浏览器下载图片
const downloadLink = document.createElement('a');
downloadLink.href = imgSrc;
downloadLink.download = 'result.jpg';
downloadLink.click();

常见踩坑点

  • 写入文件时必须选择二进制写入模式,如果用默认文本模式写入,会自动转义特殊字符导致文件损坏无法打开
  • 传入解码函数的Base64字符串不能有多余的换行、空格,否则会解码失败
  • 必须拿到API返回的完整字符串才能生成正常图片,问题中贴出的是截断的片段,用片段内容解码只能得到损坏的不完整图片

内容的提问来源于stack exchange,提问作者maria

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 16:48:25