gpt4 book ai didi

android - 将位图保存到 SD 卡

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:32:44 24 4
gpt4 key购买 nike

我有一个位图图像,我必须将其存储在 SD 卡的一个文件夹中,我的代码如下所示。它按预期创建了文件夹和文件,但图像没有存储到文件中,它仍然是一个空文件...谁能告诉我哪里出了问题?

Bitmap merged = Bitmap.createBitmap(mDragLayer.getChildAt(0).getWidth(), mDragLayer.getChildAt(0).getHeight(), Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(merged);

// save to folder in sd card
try {
File imagesFolder = new File(Environment.getExternalStorageDirectory(), "folder");
if(!imagesFolder.exists())
imagesFolder.mkdirs();
int imageNum;
if(imagesFolder.list()==null)
imageNum = 1;
else
imageNum = imagesFolder.list().length + 1;

String fileName = "file_" + String.valueOf(imageNum) + ".jpg";
File output = new File(imagesFolder, fileName);
while(output.exists()){
imageNum++;
fileName = "file_" + String.valueOf(imageNum) + ".jpg";
output = new File(imagesFolder, fileName);
}

OutputStream fOut = new FileOutputStream(output);
merged.compress(Bitmap.CompressFormat.JPEG, 100, fOut);
fOut.flush();
fOut.close();

Toast.makeText(getApplicationContext(), "Saved", Toast.LENGTH_SHORT).show();

} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}

最佳答案

首先在AndroidManifest.xml中添加权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>

然后在Java File中写下如下。

    String extr = Environment.getExternalStorageDirectory().toString();
File mFolder = new File(extr + "/MyApp");

if (!mFolder.exists()) {
mFolder.mkdir();
}

String strF = mFolder.getAbsolutePath();
File mSubFolder = new File(strF + "/MyApp-SubFolder");

if (!mSubFolder.exists()) {
mSubFolder.mkdir();
}

String s = "myfile.png";

f = new File(mSubFolder.getAbsolutePath(),s);

已更新

           String strMyImagePath = f.getAbsolutePath();
FileOutputStream fos = null;
try {
fos = new FileOutputStream(f);
bitmap.compress(Bitmap.CompressFormat.PNG,70, fos);

fos.flush();
fos.close();
// MediaStore.Images.Media.insertImage(getContentResolver(), b, "Screen", "screen");
}catch (FileNotFoundException e) {

e.printStackTrace();
} catch (Exception e) {

e.printStackTrace();
}

关于android - 将位图保存到 SD 卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13174318/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com