GWTを使用して、私はPNGイメージを読み込み、デコードされたバイト配列としてデータにアクセスできるようにしたいと思います。GWTを使用してデコードされたバイト配列としてPNGイメージデータを取得するにはどうすればよいですか?
クライアント側でImageBundleを使用してイメージを取得した後、Imageをインスタンス化してsetUrlを呼び出します。
この時点で、画像からイメージバイト配列を取得するにはどうすればよいですか?
GWTを使用して、私はPNGイメージを読み込み、デコードされたバイト配列としてデータにアクセスできるようにしたいと思います。GWTを使用してデコードされたバイト配列としてPNGイメージデータを取得するにはどうすればよいですか?
クライアント側でImageBundleを使用してイメージを取得した後、Imageをインスタンス化してsetUrlを呼び出します。
この時点で、画像からイメージバイト配列を取得するにはどうすればよいですか?
それは、私が直接ファイルをしたので、私は、JavaのO /しばらくして、しかし、ここで何か私の古いコードの一部をオフに基づいています:へのクロスブラウザの方法が存在しない場合、私はわからない
InputStream in = this.getClass().getResourceAsStream("/com/path/to/file.png");
ByteArrayOutputStream out = new ByteArrayOutputStream();
int readByte = 0;
while ((readByte = in.read()) != -1) {
out.write(readByte);
}
out.flush();
byte[] bytes = out.toByteArray();
GWTはJREのサブセットをエミュレートし、ByteArrayOutputStreamはその一部ではありません。 –
結局、JavaScriptの土台にあるイメージのバイト配列を取得します。新しいキャンバス要素を作成し、canvas.context2Dにイメージを追加し、canvas.context2D.data属性を読み取り、すべてのピクセルのRGBA値を持つ配列を取得できます。アップロードしたよう http://google-web-toolkit.googlecode.com/svn/javadoc/latest/com/google/gwt/canvas/dom/client/ImageData.html
、またはクラスパスまたはファイルシステムから:
は、GWTはあなたが純粋なJavaでこれをアーカイブすることができますので、最新版のcanvas要素をサポートしているようですか? –
アップロードしていません。私はサーバーからファイルを提供しています。 – Xavier