如何将图像从java小程序发送到javascript?
我有JAVA代码
import java.applet.Applet; import java.awt.Container; import java.awt.FlowLayout; import java.awt.Graphics; import java.awt.Image; import java.awt.MediaTracker; import java.awt.TextArea; import java.awt.Toolkit; import java.awt.datatransfer.Clipboard; import java.awt.datatransfer.DataFlavor; import java.awt.datatransfer.UnsupportedFlavorException; import java.awt.image.BufferedImage; import java.awt.image.ImageObserver; import java.awt.image.ImageProducer; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO;
public class JavaScriptToJava extends Applet{
TextArea textBox;
Image img;
MediaTracker tr;
public void init(){
setLayout(new FlowLayout());
textBox = new TextArea(5,40);
add(textBox);
}
public void appendText(String text){
textBox.append(text);
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
try {
//Get data from clipboard and assign it to an image.
//clipboard.getData() returns an object, so we need to cast it to a BufferdImage.
BufferedImage image = (BufferedImage)clipboard.getData(DataFlavor.imageFlavor);
}
//getData throws this.
catch(UnsupportedFlavorException ufe) {
ufe.printStackTrace();
}
catch(IOException ioe) {
ioe.printStackTrace();
}
}
}
我需要用javascript获取此图像。这是怎么回事
我的主要任务是从剪贴板复制图像,并将其传输到调用js的html页面
# 1 楼答案
取决于您希望在javascript中对图像执行什么操作。 若你们只是想在屏幕上显示它,你们可能想看一看 Embedding Base64 Images
否则,如果您想使用javascript裁剪或调整其大小,然后将其发送到服务器,事情将变得更加棘手;)
# 2 楼答案
创建Java方法以从BuffereImage中获取像素:
我认为还可以只调用一次小程序,并将数组传递给JavaScript代码
在JavaScript中,创建一个画布元素,然后为每个像素调用applet并在画布中设置。(More info about how to call applet from JavaScript.)(Tutorial on HMTL Canvas pixel manipulation.)
进一步: