我想将图像字节从Javascript客户端发送到JAX-RS Web服务,我尝试使用Javascript btoa()
函数对图像字节进行编码,并在服务器端尝试创建BufferedImage
类似的
ByteArrayInputStream arrayInputStream = new ByteArrayInputStream(imageBytes);
BufferedImage originalImage = ImageIO.read(arrayInputStream);
完整代码:
使用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:
String ImageByteFromrequest ="";
byte[] imageBytes = Base64.decode(ImageByteFromrequest);
ByteArrayInputStream arrayInputStream = new ByteArrayInputStream(imageBytes);
BufferedImage originalImage = ImageIO.read(arrayInputStream);
发布于 2018-08-29 10:46:57
从转换byte[]到BufferedImage涉及使用InputStream和ImageIO.read()
InputStream in = new ByteArrayInputStream(imageInByte);
BufferedImage bImageFromConvert = ImageIO.read(in);
检查以下代码段是否有所帮助:
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"));
https://stackoverflow.com/questions/-100006067
复制相似问题