を読むように原画像データをJavaによJNI
-
22-08-2019 - |
質問
を使用していJNIを得る原画像データは以下のフォーマット:
画像データが返される形式のDATA32(32ビット/ピクセルにリニアアレイの左上の画像の右下から左右します。各ピクセルの上位8ビットとしてのアルファチャンネルと下位8ビットの青チャンネルでピクセルのビットARGBから最も少なくなり8ビットのチャンネル)つけなければなりませんのデータはいないのです。
のDATA32形式が本質的にはunsigned int C.
いるint[]配列そのものを作ろうという試みはバッファリングされたイメージで
int w = 1920;
int h = 1200;
BufferedImage b = new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB);
int[] f = (new Capture()).capture();
for(int i = 0; i < f.length; i++){;
b.setRGB(x, y, f[i]);
}
fの配列のピクセルデータです。
のJavaドキュメントこのすべてのBufferedImage.TYPE_INT_ARGBは:
るイメージを表し8ビットRGBA色成分に詰め、整数値(ピクセル単位)で作成します。イメージはDirectColorModelを持ちアルファ.のカラーデータは、この画像は、あらかじめ乗算されていませんと。この型が使用されるのimageType引数を持つBufferedImageコンストラクタは、作成されたイメージは画像作成されたJDK1.1およびそれ以前リリースなどで行っています。
による場合を除き8ビットRGBAとは違う意味になるのでしょう意味する全ての部品と合わせてエンコードされてい8bit?これは不可能である。
このコードは、イメージがないように製造できます。がトンです誰でもできるので見ても明らかが間違っている。
うに注意して取得私のピクセルデータ
imlib_context_set_image(im);
data = imlib_image_get_data();
私のCコードを使用し、図書館imlib2api http://docs.enlightenment.org/api/imlib2/html/imlib2_8c.html#17817446139a645cc017e9f79124e5a2
解決
って新作ゲーム更新おつです
これは単なるバグ。
忘れてしまったのかを計算してx,yます。
基本的に使っていた
int x = i%w;
int y = i/h;
のためのループは、間違っています。すべき
int x = i%w;
int y = i/w;
できることが明けまして御目出とう御座いますね。