bitmap.compress(compressFormat.PNG,100,fout)压缩捕获的图像并使其不可读

时间:2014-07-26 11:19:09

标签: android image bitmap android-camera

我目前正在创建一个应用程序,允许用户拍摄图像,然后将其保存到设备内存中。拍摄图像和保存的行为很好,但我的问题是保存到内存中的图像被压缩并变得不可读。

以下是代码片段,一旦捕获图像,它就会将其保存到文件位置。

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是无损的,所以我的代码中有什么东西会导致图像变得难以理解吗?

提前致谢!

0 个答案:

没有答案