javascript - 如何将图像字节从 javascript 发布到 JAX-RS 网络服务并从 imageBytes 数组创建 BufferedImage?
问题描述
我想将图像字节从 Javascript 客户端发送到 JAX-RS Web 服务。我尝试使用 Javascript 函数对图像字节进行编码btoa()
,并在服务器端尝试创建一个BufferedImage
类似的
ByteArrayInputStream arrayInputStream = new ByteArrayInputStream(imageBytes);
BufferedImage originalImage = ImageIO.read(arrayInputStream);
但是, originalImage 越来越为空。
请你帮助我好吗。
完整代码:
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);
提前致谢。
解决方案
推荐阅读
- javascript - 相同的函数不同的 MD5 哈希结果
- python - 在 Tkinter (Python3) 中循环声明按钮
- c++ - 字符串复制构造函数与从 string_view 构造字符串的成本
- image-processing - 旧 JPG 文件仅适用于 VB6 Leadtools
- swift - AVPlayer 本地视频预览调试错误
- flutter - 使用 Flutter 和 Stripe 支付成功后返回应用
- ms-access-2007 - Ms Access 公式根据在单元格中输入的时间定义时移
- c - 我无法访问 c 中的 if 语句
- python - 带有杂乱字典的 Pandas 拆分列表
- erlang - Erlang/OTP 发布和 LTS 时间表是什么?