我的应用程序的想法是从相机捕获图像,然后从中裁剪指定区域。
问题:当我第一次将裁剪的图像保存在我的 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();
}
}