图⽚的base64格式从内存中直接读⼊的python和java⽅法
将图⽚的base64直接从内存中读取,不⽤存储在本地的⽅法的python和java实现
# 这个ls_f是base64编码
import cStringIO
imgdata = cStringIO.StringIO(base64.b64decode(ls_f))
true_image = Image.open(imgdata)
true_image.show()
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
import java.io.*;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
import lor.ColorSpace;
import java.awt.image.ColorConvertOp;
public static String GenerateImage(String imgStr) { //对字节数组字符串进⾏Base64解码并⽣成图⽚
BASE64Decoder decoder = new BASE64Decoder();
try {
//Base64解码
byte[] b = decoder.decodeBuffer(imgStr);
for (int i = 0; i < b.length; ++i) {
if (b[i] < 0) {//调整异常数据
b[i] += 256;
}
}
ByteArrayInputStream in = new ByteArrayInputStream(b); //将b作为输⼊流;
BufferedImage image = ad(in); //将in作为输⼊流,读取图⽚存⼊image中,⽽这⾥in可以为ByteArrayInputStream();
python转java代码ColorSpace cs = Instance(ColorSpace.CS_GRAY);
ColorConvertOp op = new ColorConvertOp(cs, null);
image = op.filter(image, null);
ByteArrayOutputStream out = new ByteArrayOutputStream();
ImageIO.write(image,"JPEG", out);
byte[] data_byte = ByteArray();
BASE64Encoder encoder = new BASE64Encoder();
// de(data_byte);//返回Base64编码过的字节数组字符串
// System.out.de(data_byte));
de(data_byte);
} catch (Exception e) {
return"";
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论