从我的应用程序保存图片

时间:2012-06-20 23:02:22

标签: android

我的应用程序的想法是从相机捕获图像然后从中裁剪指定区域。

问题:       当我第一次在我的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();
    }
}

1 个答案:

答案 0 :(得分:0)

也许如果你试图覆盖以前版本的文件,你应该先删除上一个版本......

您可以添加:

if (!outFile.exists())
    outFile.mkdirs();
else {
    outFile.delete();
    outFile.createNewFile();
}