gpt4 book ai didi

java - 将位图存储在 SD 卡中会降低图像质量

转载 作者:太空宇宙 更新时间:2023-11-03 12:35:23 27 4
gpt4 key购买 nike

我正在将位图存储在 SD 卡中,同时检索丢失它们的质量。我该如何解决这个问题。下面是我将位图存储在 Sd 卡中的代码。

public void saveExternalPrivateStorage(File folderDir, String fname,
Bitmap bitmap) {

File file = new File(folderDir, fname);

if (file.exists()) {
file.delete();
}
if ((folderDir.mkdirs() || folderDir.isDirectory())) {
try {
FileOutputStream out = new FileOutputStream(file);
bitmap.compress(Bitmap.CompressFormat.JPEG, 0, out);
out.flush();
out.close();
System.out.println("Stored");
System.out.println(file.getAbsolutePath());
System.out.println("Stored");

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

调用此方法:

File folderDir= new File(getActivity().getExternalFilesDir("myfolder"),"/images");
storeImagesIndevices.saveExternalPrivateStorage(folderDir,filename,imgBitmapUrls.get(i));

从 SD 卡中检索:

Bitmap bitmap2 = BitmapFactory.decodeFile(folderDir+"/"+data.getTid());
dbimgBitmapUrls.put(data.get_tid()-1, bitmap2);

非常感谢...

最佳答案

bitmap.compress(Bitmap.CompressFormat.JPEG, 0, out);

JPEG 是一种有损压缩格式,您已将质量参数设置为 0%。大约 70% 通常是文件大小和图像质量之间的一个很好的折衷:

bitmap.compress(Bitmap.CompressFormat.JPEG, 70, out);

或者使用质量参数无关紧要的无损格式,例如 PNG:

bitmap.compress(Bitmap.CompressFormat.PNG, 0, out);

Can store the bitmap in SQLite? is it good approach. In my case number of images not that much

你可以,但你不应该。更好的方法是将图像存储为文件,并将路径存储在数据库中。

关于java - 将位图存储在 SD 卡中会降低图像质量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21061991/

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