使用绘图缓存和保存到文件的屏幕截图会为图像添加噪点

时间:2015-02-17 06:46:55

标签: android file save

我有多个活动,每个活动在屏幕上应用一些视觉效果,然后保存并将其发送到另一个活动,但在每个过程(getDrawingCache + save + send)后,图像上会出现一些噪音,这是我的代码:

    FrameLayout frame1=(FrameLayout) findViewById(R.id.finalview_new);
            frame1.setDrawingCacheEnabled(true);
            frame1.buildDrawingCache();
            Bitmap bitmap=frame1.getDrawingCache();
             String fileName = "myImage";//no .png or .jpg needed
                try {
                    ByteArrayOutputStream bytes = 
       new    ByteArrayOutputStream();
                    bitmap.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
                    FileOutputStream fo = 
       openFileOutput(fileName, aftertext.this.MODE_PRIVATE);
                    fo.write(bytes.toByteArray());
                    // remember close file output
                    fo.close();
                } catch (Exception e) {
                    e.printStackTrace();
                    fileName = null;
                }
                ed.setVisibility(View.VISIBLE);
                onCreate(null);

1 个答案:

答案 0 :(得分:0)

这是罪魁祸首

bitmap.compress(Bitmap.CompressFormat.JPEG, 100, bytes); 

JPEG是一种有损格式。使用BitmapFormat.PNG option instead