Я создаю приложение для 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. Есть ли способ?
Я уже пробовал PNG. Тем не менее он работал не так, как я хотел. – Jayadev
если вы не согласны, пожалуйста, попробуйте вот так: Bitmap bitmap = Bitmap.createBitmap (image.width, image.height, Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas (bitmap); – yemonkyaw
Извините, я забыл полный образец кода, попробуйте следующее, если вы не в порядке, попробуйте, как этот Bitmap bitmap = Bitmap.createBitmap (image.width, image.height, Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas (bitmap); my_journal_ss_item.draw (холст); try { Файл файла = новый Файл (путь к файлу); FileOutputStream fOut = new FileOutputStream (файл); bitmap.compress (Bitmap.CompressFormat.PNG, 100, fOut); fOut.flush(); fOut.close(); } catch (IOException e) { e.printStackTrace(); } – yemonkyaw