博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java数组缓冲_java-如何将字节数组转换为缓冲的图像
阅读量:5870 次
发布时间:2019-06-19

本文共 1332 字,大约阅读时间需要 4 分钟。

我有一个从客户端获取字节数组的服务器端Java代码.为了进行一些图像处理,我需要将字节数组转换为BufferedImage.我有一个应该在这里执行的代码:

public void processImage(byte[] data) {

ByteArrayInputStream stream = new ByteArrayInputStream(data);

BufferedImage bufferedImage;

bufferedImage = ImageIO.read(stream);

// bufferedImage is null

//...

}

但这是行不通的. bufferedImage为null.根据ImageIO文档:

If no registered ImageReader claims to be able to read the resulting stream, null is returned.

我如何告诉ImageReader它是什么图像类型.例如,如果我知道图像是JPEG(在我的情况下就是JPEG),我应该怎么做?

编辑:感谢您的建议,该文件很可能不是JPEG格式.这是我拥有的客户端代码,用于将数据作为String发送到服务器:

import org.json.JSONObject;

// Client-side code that sends image to server as String

public void sendImage() {

FileInputStream inputStream = new FileInputStream(new File("myImage.jpg"));

ByteArrayOutputStream byteStream = new ByteArrayOutputStream();

byte[] b = new byte[1024];

while ((bytesRead = inputStream.read(b)) != -1) {

byteStream.write(b,0,bytesRead);

}

byte[] byteArray = byteStream.toByteArray();

JSONObject jsonObject = new JSONObject();

jsonObject.put("data",new String(byteArray));

// ... more code here that sends jsonObject in HTTP post body

}

这是调用processImage()函数的服务器端代码:

// Server-side code that calls processImage() function

public void handleRequest(String jsonData) {

JSONObject jsonObject = new JSONObject(jsonData);

processImage(jsonObject.getString("data").getBytes());

}

转载地址:http://bftnx.baihongyu.com/

你可能感兴趣的文章
frameset iframe frame之间的区别
查看>>
Python转义字符
查看>>
Kubernetes平台中日志收集
查看>>
ElasticSearch学习(8)-Restful接口查询操作
查看>>
URL—base64加密
查看>>
打包审核的那些个坑 (含swift)
查看>>
电子秤示数读取方案
查看>>
我的友情链接
查看>>
Nginx+Keepalived搭建高可用负载均衡集群
查看>>
js获取当前物理地址
查看>>
一个例子说明java局部代码块、静态代码块、构造代码块区别
查看>>
LVS的三种模式区别详解
查看>>
Nginx(1)-nginx的编译安装
查看>>
Unity3d iOS 如何添加Admob
查看>>
Backtrack5 下WEB模糊测试
查看>>
活动目录之占用操作主机实例分析
查看>>
Docker启动kafka
查看>>
http2.4.2+mysql5.5.24+postfix2.9.3
查看>>
我的友情链接
查看>>
Photoshop脚本 > 压缩并输出JPEG图片
查看>>