我目前正在创建一个应用程序,允许用户拍摄图像,然后将其保存到设备内存中。拍摄图像和保存的行为很好,但我的问题是保存到内存中的图像被压缩并变得不可读。
以下是代码片段,一旦捕获图像,它就会将其保存到文件位置。
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == CAPTURE_IMAGE_CAPTURE_CODE)
{
if (resultCode == RESULT_OK)
{
Bundle extras = data.getExtras();
// get bitmap
pic = (Bitmap) extras.get("data");
imageView1.setImageBitmap(pic);
String file_path = Environment.getExternalStorageDirectory().getAbsolutePath() +"/MyReceiptTracker";
File dir = new File(file_path);
File file = new File(dir,pic + ".png");
try {
fOut = new FileOutputStream(file);
pic.compress(CompressFormat.PNG, 100, fOut);
fOut.flush();
fOut.close();}
catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Toast.makeText(this, "Image Captured and Saved", Toast.LENGTH_LONG).show();
}
else if (resultCode == RESULT_CANCELED)
{
Toast.makeText(this, "Cancelled", Toast.LENGTH_LONG).show();
}
}
}
我的问题是:是否可以保存到文件而不会导致此压缩使文件无法读取?我知道PNG是无损的,所以我的代码中有什么东西会导致图像变得难以理解吗?
提前致谢!