以高分辨率保存画布图像



我正在创建一个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。有什么办法吗?

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

我认为这是因为使用bitmap.compress(CompressFormat.JPEG, 100, ostream);使用PNG代替JPEG希望你一切安好

最新更新