我的应用程序的想法是从相机捕获图像然后从中裁剪指定区域。
问题: 当我第一次在我的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();
}
}
答案 0 :(得分:0)
也许如果你试图覆盖以前版本的文件,你应该先删除上一个版本......
您可以添加:
if (!outFile.exists())
outFile.mkdirs();
else {
outFile.delete();
outFile.createNewFile();
}