簡単な処理関数を書きたかったのです。
次のように実行する必要があります。
- JPEG を読み込む
- ビットマップに変換します
- ビットマップをバイト配列として保存
- 処理する
- データはビットマップ表示イメージに変換されます。
public class MainActivity extends Activity {
ImageView imgView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imgView = (ImageView) findViewById(R.id.imageView1);
AssetFileDescriptor asf;
String filename = Environment.getExternalStorageDirectory() + "/Test/"
+ "DSC00751.JPG";
Bitmap map = BitmapFactory.decodeFile(filename);
ByteArrayOutputStream bout = new ByteArrayOutputStream();
// Convert image so it can be stored in byteArray
map.compress(CompressFormat.JPEG, 100, bout);
byte[] array = bout.toByteArray();
// Process image.
for (int i = 0; i < array.length; i++) {
if (array[i] < 0) {
array[i] = (byte) 200;
}
}
// Convert result and display
Bitmap bmp = BitmapFactory.decodeByteArray(array, 0, array.length);
imgView.setImageBitmap(bmp);
Toast.makeText(getApplicationContext(), "done", Toast.LENGTH_SHORT).show();
}
その見返りに白い画面が表示されます。私の処理コードがどのように見えても。前に foreach(byte b : array) を使ってみたのですが、これはいつも元の画像を返してしまいました。
私は何を間違っていますか?