首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何将图像字节从javascript发送到JAX-RS Web服务,并从ImageBytes数组创建BufferedImage?

如何将图像字节从javascript发送到JAX-RS Web服务,并从ImageBytes数组创建BufferedImage?
EN

Stack Overflow用户
提问于 2018-08-29 01:13:16
回答 1查看 0关注 0票数 0

我想将图像字节从Javascript客户端发送到JAX-RS Web服务,我尝试使用Javascript btoa()函数对图像字节进行编码,并在服务器端尝试创建BufferedImage类似的

代码语言:javascript
复制
ByteArrayInputStream arrayInputStream = new ByteArrayInputStream(imageBytes);
BufferedImage originalImage = ImageIO.read(arrayInputStream);

完整代码:

使用Javascript:

代码语言:javascript
复制
function handleUpload(){
  var input = document.getElementById("imageUploadId");
  var file = input.files[0];
  file.convertToBase64(base64ImageData);
}

function base64ImageData(data){
  if(data){
    var imageBytes = data.split(",")[1];
    imageBytes =  btoa(imageBytes);
  }
}

Java - Jax-RS:

代码语言:javascript
复制
String ImageByteFromrequest ="";
byte[] imageBytes = Base64.decode(ImageByteFromrequest);
ByteArrayInputStream arrayInputStream = new ByteArrayInputStream(imageBytes);
BufferedImage originalImage = ImageIO.read(arrayInputStream);
EN

回答 1

Stack Overflow用户

发布于 2018-08-29 10:46:57

从转换byte[]到BufferedImage涉及使用InputStream和ImageIO.read()

代码语言:javascript
复制
InputStream in = new ByteArrayInputStream(imageInByte);
BufferedImage bImageFromConvert = ImageIO.read(in); 

检查以下代码段是否有所帮助:

代码语言:javascript
复制
byte[] imageInByte;
BufferedImage originalImage = ImageIO.read(new File("c:/darksouls.jpg"));

// convert BufferedImage to byte array
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(originalImage, "jpg", baos);
baos.flush();
imageInByte = baos.toByteArray();
baos.close();

// convert byte array back to BufferedImage
InputStream in = new ByteArrayInputStream(imageInByte);
BufferedImage bImageFromConvert = ImageIO.read(in);

ImageIO.write(bImageFromConvert, "jpg", new File("c:/new-darksouls.jpg"));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100006067

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档