所以我对applet并不是很有经验,但我有一个基于用户输入绘制内容的applet,保存applet创建的图像文件最简单的方法是什么? (最好是在用户点击" applet"然后喜欢"保存图片")
答案 0 :(得分:1)
我有一个根据用户输入绘制内容的小程序
让applet使用页面上现有的<img ..>
元素。每当图像发生变化时,请对image as Base-64进行编码并将其写入img.src
属性。
applet需要使用applet可用的Java / JavaScript桥来操纵托管它的网页的文档对象模型。
..保存applet创建的图像文件最简单的方法是什么? (最好在用户点击“applet”之后再点击“保存图片”)
如果浏览器支持保存基本64位编码图像,则应自动提供该功能。
当然,如果使用Java Web Start部署applet,则可以使用JNLP API的FileSaveService
。
答案 1 :(得分:0)
我很确定Java库不支持这种方式。最有可能你需要做的就是自己制作一个图像文件 - 为了简单起见,让我们说一个位图 - 迭代像素并根据你的图像数据自己设置它们,或多或少地制作你自己的渲染引擎。
澄清一下,这意味着您必须保存用户的输入,并使用它来构建图像文件以及屏幕上的图像。
这是我的意思的伪代码示例:
ArrayList rules; //records the user's inputs used to make the image
//e.g. "red line from pixel (3,5) -> (5,8)"
Image savedImage; //open an image file - make sure to set its dimensions to the
//dimensions of the image on-screen
for (x = 0 -> savedImage.width)
{
for (y = 0 -> savedImage.height)
{
for (r = 0 -> rules.size())
{
if (rules.get(r).affects(x,y)) //checking to see if this input
{ //affected this pixel
savedImage.pixelAt(x,y).apply(rules.get(r)); //if so, apply the rule's
//effect to this pixel
}
}
}
}
我非常确定您自己必须制作规则类和Image类,但它们不应该太难制作。
虽然我想指出我假设您希望以编程方式执行此操作,以便在用户完成时或用户告诉applet保存图像时自动保存图像。