2015-07-29 3 views
3

Я создаю приложение для 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. Есть ли способ?

ответ

0

Я думаю, что это из-за использования bitmap.compress (CompressFormat.JPEG, 100, ostream); использовать PNG instread из JPEG Надеется, что вы ки

+0

Я уже пробовал PNG. Тем не менее он работал не так, как я хотел. – Jayadev

+0

если вы не согласны, пожалуйста, попробуйте вот так: Bitmap bitmap = Bitmap.createBitmap (image.width, image.height, Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas (bitmap); – yemonkyaw

+0

Извините, я забыл полный образец кода, попробуйте следующее, если вы не в порядке, попробуйте, как этот 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

1

Постарайтесь сохранить текст, изображения и все рисование в качестве объектов и когда пользователь нажимает кнопку Сохранить создать новое растровое изображение с требуемым разрешением и перевести текущий холст к требуемым

Смежные вопросы