私のアプリのアイデアは、カメラから画像をキャプチャし、そこから指定された領域をトリミングすることです。
問題 : アプリを起動するために、初めてトリミングした画像を SD カードに保存すると、正しく保存されました。しかし、私のアプリをもう一度実行して画像を撮ってから切り取ると。保存すると、最初に撮影してトリミングした最初の画像が現在のものではなくSDカードに表示されます。
これは、画像を保存するための私のコードです:
public static void save(Activity activity, Bitmap bm, String name) {
OutputStream outStream = null;
File externalFilesDir = activity.getExternalFilesDir(Environment.DIRECTORY_PICTURES);
File outFile = new File(externalFilesDir, "IDOCR" + File.separator + "Numbers");
if (!outFile.exists())
outFile.mkdirs();
File number = new File(outFile, name + ".PNG");
//if (number.exists())
// number.delete();
try {
//outStream = new FileOutputStream(new File(path));
outStream = new FileOutputStream(number);
bm.compress(Bitmap.CompressFormat.PNG, 100, outStream);
outStream.flush();
outStream.close();
bm.recycle();
System.gc();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}