Как я могу преобразовать холст в растровое изображение для сохранения в SD-карте

Я использую SurfaceView для перемещения двух растровых изображений по экрану. Я пробовал это:

...
@Override
protected void onDraw(Canvas canvas) {
  super.onDraw(canvas);

  ...

  canvas.drawBitmap(bitmap,matrix,paint);
  canvas.drawBitmap(bitmap2,matrix,paint);
}
...

Как можно так сохранить холст на SD-карту?

public saveCanvasIntoSdCard(Canvas canvas)
{

}

person viam    schedule 04.06.2014    source источник


Ответы (1)


Решение, которое я нашел:

public Bitmap getBitmap() {
  Bitmap bmOverlay = Bitmap.createBitmap(bitmap2.getWidth(), bitmap2.getHeight(), bitmap2.getConfig());
  Canvas canvas = new Canvas(bmOverlay);
  canvas.drawBitmap(bitmap, matrix, null);
  canvas.drawBitmap(bitmap2, 0, 0, null);
  return bmOverlay;
}

public void save(View view){
  String root = Environment.getExternalStorageDirectory().toString();
  File myDir = new File(root + "/dress");    
  myDir.mkdirs();

  String fname = "save.jpg";
  File file = new File (myDir, fname);
  if (file.exists ()) file.delete (); 
  try {
  FileOutputStream out = new FileOutputStream(file);
  getBitmap().compress(Bitmap.CompressFormat.JPEG, 100, out);
  out.flush();
  out.close();

  } catch (Exception e) {
  e.printStackTrace();
  }

}
person viam    schedule 05.06.2014
comment
что за матрица? это тождественная матрица? - person Hector; 04.07.2015