1

私は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ページに転送することです。

4

2 に答える 2

0

BufferedImage からピクセルを取得する Java メソッドを作成します。

public int getPixel(int xLoc, int yLoc) {
    int argb = myImage.getRGB(xLoc, yLoc);
    int rgba = // ... convert to rgba;
    return rgba;
}

アプレットを 1 回だけ呼び出して、JavaScript コードに配列を渡すことも可能だと思います。

JavaScript で Canvas 要素を作成し、ピクセルごとにアプレットを呼び出して Canvas に設定します。( JavaScript からアプレットを呼び出す方法に関する詳細情報。 ) ( HMTL Canvas ピクセル操作のチュートリアル。 )

さらに一歩:

var myCanvas = document.getElementById("myCanvas");
var myImg    = myCanvas.toDataURL("image/png");
document.write('<img src="'+myImg+'"/>');
于 2012-12-05T16:53:40.267 に答える
0

JavaScriptの画像で何をしたいかによって異なります。画面に表示したいだけの場合は、 Embedding Base64 Imagesをご覧ください。

それ以外の場合は、javascript でトリミングまたはサイズ変更してからサーバーに送信する場合、事態はさらに複雑になります;)

于 2012-12-05T14:57:04.383 に答える