0

写真を撮ったときに取得した bytearray をデコードすると、奇妙な OOM エラーが発生します。私のコードは以下の通りです。それを行うより良い方法があれば教えてください。

@Override
public void onPictureTaken(byte[] data, Camera camera) {
    // TODO something with the image data

    // Restart the preview and re-enable the shutter button so that we can take another picture
    camera.startPreview();
    inPreview = true;
    shutterButton.setEnabled(true);
    System.gc();
    Bitmap bitmap = BitmapFactory.decodeByteArray(data , 0, data.length);
    Matrix matrix = new Matrix();
    matrix.postRotate(90);
    Bitmap resizedBitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(),
            bitmap.getHeight(), matrix, false);
    if(bitmap != null){
        boolean fileSaved = Funcs.saveImage(getActivity(),resizedBitmap, "moizali");
        if(fileSaved){
            ((BaseActivity)getActivity()).goToPhotoEditActivity("moizali");
        }
    }
}
4

0 に答える 0