ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

如何将图像从Java Applet发送到JavaScript?

2019-10-08 14:00:50  阅读:153  来源: 互联网

标签:javascript java image applet


我有一个生成图像的Java Applet.最后,我想将图像数据插入到数据库中,因此我想暂时将图像数据存储在包含applet的页面上的表单字段中.我希望不在客户端计算机上存储图像文件.

这一切都来自签名板.这是一些代码,它应该从存储在sigObj对象中的矢量数据生成一个位图像:

sigObj.setImagePenWidth(10);
sigObj.setImageXSize(1000);
sigObj.setImageYSize(350);
image = sigObj.sigImage();

image变量是BufferedImage对象.此外,如果我只是将图像变量发送回我的JavaScript,这里是警报输出:

BufferedImage@fe748f: type = 5 
ColorModel: #
pixelBits = 24 
numComponents = 3 
color space = java.awt.color.ICC_ColorSpace@641e9a 
transparency = 1 
has alpha = false 
isAlphaPre = false 
ByteInterleavedRaster: width = 1000 height = 350 #
numDataElements 3 
dataOff[0] = 2

(为了便于阅读,添加了换行符)

是否可以将图像本身发回?有什么建议么?

我不太了解Java,所以如果我问一个愚蠢的问题,我道歉.

谢谢.

编辑:

根据BalusC的建议,这里是我用来将图像转换为Base64字符串的代码,适用于任何可能感到好奇的人:( img是BufferedImage,dataImg是String)

import org.apache.commons.codec.binary.Base64;

...

try{        
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    ImageIO.write(img, "BMP", baos);
    byte[] bytes = baos.toByteArray();
    dataImg = new Base64().encodeBase64String(bytes);
} catch(Exception e) {}

这使用Apache Commons Codec进行Base64编码.也许这是微不足道的,但对我来说这是新的.

解决方法:

你基本上有两个选择:

>使用Base64将其从byte []编码为String,以便在作为字符数据传输时二进制数据不会出错.然后,让JavaScript将其设置为某些POST表单的隐藏输入值.在服务器端,您需要对其进行Base64解码以获取原始字节数组.
>使用Java以编程方式在Applet中触发HTTP POST请求. Java SE API为此提供了java.net.URLConnection(little tutorial here).一个更方便的API是Httpclient.在服务器端,您只需将其作为常规POST请求参数处理.

目前还不清楚你正在使用哪种服务器端编程语言,所以我无法给出更详细的答案.

标签:javascript,java,image,applet
来源: https://codeday.me/bug/20191008/1872347.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有