我有以下代码来获取小尺寸的头像:
Bitmap b= BitmapFactory.decodeFile(selectedImagePath);
File file = new File(selectedImagePath);
Bitmap out = Bitmap.createScaledBitmap(b, 128, 128, false);
FileOutputStream fOut;
try {
fOut = new FileOutputStream(file);
out.compress(Bitmap.CompressFormat.PNG, 100, fOut);
fOut.flush();
fOut.close();
b.recycle();
out.recycle();
}
问题是,在执行此代码后,我在库中的图像也会重新调整,但我必须保留它而不做任何更改。 我尝试使用这样的Bitmap图像副本:
Bitmap bmp2 = b.copy(b.getConfig(), true);
Bitmap out = Bitmap.createScaledBitmap(bpm2, 128, 128, false);
或
Bitmap bmp2 = Bitmap.createBitmap(b);
Bitmap out = Bitmap.createScaledBitmap(bpm2, 128, 128, false
但我的原始图像仍在变化。我如何获得此图像的新的独立副本?
答案 0 :(得分:1)
您正在从“selectedImagePath”加载图片,然后当您拨打compress()
覆盖原始图片时,输出文件指向同一路径。
尝试为已调整大小的图片创建新名称。
fOut = new FileOutputStream(renamedFile);