-1

私のアプリのアイデアは、カメラから画像をキャプチャし、そこから指定された領域をトリミングすることです。

問題 : アプリを起動するために、初めてトリミングした画像を 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();
    }
}
4

1 に答える 1

0

以前のバージョンのファイルを上書きしようとしている場合は、最初に以前のバージョンを削除する必要があります...

あなたは付け加えられます:

if (!outFile.exists())
    outFile.mkdirs();
else {
    outFile.delete();
    outFile.createNewFile();
}
于 2012-06-20T23:06:59.617 に答える