以高分辨率保存画布图像

时间:2015-07-29 09:37:06

标签: android image canvas bitmap high-resolution

我正在创建一个Android应用程序,用户可以在画布上绘制,添加文本或图像。 用户在画布上完成编辑后,有一个保存选项。 当我尝试将其保存为图像时,生成的输出图像的分辨率非常低。

            canvas.setDrawingCacheEnabled(true);                
            canvas.setDrawingCacheQuality(View.DRAWING_CACHE_QUALITY_HIGH);
            Bitmap bitmap = canvas.getDrawingCache();
            String path = Environment.getExternalStorageDirectory().getAbsolutePath();
            File file = new File(path+"/image.jpg");
            FileOutputStream ostream;
            try {
                file.createNewFigle();
                ostream = new FileOutputStream(file);
                bitmap.compress(CompressFormat.JPEG, 100, ostream);
                ostream.flush();
                ostream.close();
                Toast.makeText(getApplicationContext(), "image saved", 5000).show();
            } catch (Exception e) {
                e.printStackTrace();
                Toast.makeText(getApplicationContext(), "error", 5000).show();
            }

我希望将图像保存为A3 300dpi。有什么办法吗?

2 个答案:

答案 0 :(得分:1)

尝试将文本,图像和所有绘图保存为对象,当用户单击“保存”按钮时,创建一个具有所需分辨率的新位图,并将当前画布转换为所需的位图

答案 1 :(得分:0)

我认为这是因为使用了bitmap.compress(CompressFormat.JPEG,100,ostream);使用JPEG的PNG instread 希望你没问题