私の問題は次のとおりです。ImageViewで表示する必要があるバイト配列があります。これは私のコードです:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ImageView imageView = (ImageView)findViewById(R.id.show_image);
byte[] arrayBytes = ...; // It's initialized
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSample = 4;
imageView.setImageBitmap(BitmapFactory.decodeByteArray(arrayBytes,0,arrayBytes.length,options));
}
バイト配列に格納される各バイトは double[][] の要素ですが、バイト形式です。Android はデフォルトで ARGB_8888 形式を使用します。
グレー スケール マトリックスを表示するのに最適な形式がどれかわかりません。
なにか提案を?
//EDIT このコードの問題は、画像が表示されないことです。私が行った変換は間違っていると思います:
byte[] byteArray = new byte[SIZE];
int k = 0;
for(...i) {
for(...j) {
byteArray[k] = Double.valueOf(matrix[i][j]).byteValue();
k++;
}
}
var 行列は double[][] であり、グレースケール イメージを表します。各ピクセルは、Double クラスの byteValue メソッドを使用してバイトに変換されます。
私が使用している形式 (ARGB_8888 または RGB_565) では、各ピクセルに複数のバイトが必要なため、間違っていると思います。
だから変換の仕方がわからない