我有一个生成图像的Java
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编码。也许这是微不足道的,但这对我来说是新的。
您基本上有2个选择:
从开始byte[]
到String
使用Base64对其进行编码,以便在将二进制数据作为字符数据传输时,二进制数据不会变形。然后,让JavaScript将其设置为某些POST形式的某些隐藏输入值。在服务器端,您需要对其进行Base64解码,以获取原始字节数组。
使用Java在Applet内部以编程方式触发HTTP POST请求。Java SE API java.net.URLConnection
为此提供了此功能(此处为小教程)。更为方便的API是Httpclient。在服务器端,您只需要将其作为常规POST请求参数进行处理即可。
目前尚不清楚您使用的是哪种服务器端编程语言,因此我无法为该端提供更详细的答案。
我正在尝试使用JNI将一个图像从C++发送到java。该图像是一个用C++创建的位图,其中我使用将像素转换为一个。当使用C++将图像保存到文件中时,没有任何问题,但是当将像素发送到Java时,图像会变得模糊。JavaDocs说我必须使用来实现BufferedImage,但我觉得压缩中有问题 C++位图 这是图像的结果
你好,我想上传多张图片到firebase。目前我可以上传1张图片。尽管如此,我还是决定将所有内容作为HTML,比如标题、描述和图像,放在一个webview中,并从那里显示出来。目前,这项工作还不错,我在firebase中有一个字符串,包含所有这些内容: 不过,正如您所见,这只是本地存储的工作形式。如何下载这些图像并用正确的firebase图像URL替换图像src。
问题内容: 我的问题是可以使用ajax(jquery)将图像上传到服务器吗 以下是我的ajax脚本,无需重新加载页面即可发送文本 是否可以修改它以发送图像? 问题答案: 这可行。 是您要找的东西吗?
问题内容: 我正在制作一个应用程序,用于将图像从Android设备发送到在PC上运行的Java应用程序。客户端(android)上的图片是,我将其转换为,以便通过蓝牙发送到服务器。 请注意,位图来自已压缩的文件,因此我不需要再次对其进行压缩。 我在服务器(Java)上使用以下代码: 客户端没有错误。但是我在服务器端(Java应用程序)遇到此异常: java.lang.IllegalArgument
我在一个类中有一个imageView,在单击imageView时,会出现一个对话框,它有两个选项,可以从相机中获取图像,也可以打开设备的图像库。我想将图像从一个类发送到另一个类,这样它就可以出现在ImageView中。我搜索了很多小时,但我只得到关于从一个类到另一个类的文本数据发送。谁能告诉我从一个类到另一个类的图像发送? 这是来自sender类的代码,它将获取图像。 谢谢你的帮助
问题内容: 我正在为我的应用程序使用烧瓶。我想将图像(由PIL动态生成)发送给客户端,而不保存在磁盘上。 任何想法如何做到这一点? 问题答案: 首先,你可以将映像保存到临时文件并删除本地文件(如果有): 其次,将临时文件设置为响应(根据此stackoverflow问题):