如何获取图片或其他类型文件的raw binary data(原始二进制)数据?
获取图片原始二进制数据的通用解决方案
首先明确你需要的是 压缩编码后的图片文件二进制数据,还是 解码后的像素原始二进制数据,两种场景的实现方案如下:
1. Python 环境
- 读取本地图片的文件二进制,直接用内置
open函数即可:
with open("example.jpg", "rb") as f: img_file_binary = f.read()
- 拉取网络图片的文件二进制,可使用
requests模块:
import requests resp = requests.get("目标图片链接", stream=True) img_file_binary = resp.content
- 如需获取解码后的像素原始二进制,使用
Pillow图像处理库:
from PIL import Image img = Image.open("example.jpg") pixel_raw_binary = img.tobytes()
2. Node.js 环境
- 读取本地图片的文件二进制,直接用内置
fs模块:
const fs = require('fs'); const img_file_binary = fs.readFileSync('./example.jpg');
- 拉取网络图片的文件二进制,可使用
axios模块:
const axios = require('axios'); const resp = await axios.get('目标图片链接', { responseType: 'arraybuffer' }); const img_file_binary = resp.data;
3. 浏览器端 JavaScript 环境
- 拉取网络图片的文件二进制,使用原生
fetch接口:
const resp = await fetch('目标图片链接'); const img_file_binary = await resp.arrayBuffer();
- 读取用户本地上传的图片二进制,使用
FileReader接口:
const fileInput = document.querySelector('input[type="file"]'); fileInput.addEventListener('change', (e) => { const file = e.target.files[0]; const reader = new FileReader(); reader.onload = () => { const img_file_binary = reader.result; }; reader.readAsArrayBuffer(file); });
内容的提问来源于stack exchange,提问作者Sifat Mahmud
相关产品推荐
相关产品推荐

