Как сохранить canvas изображение как картинку

Ну например, нарисовал я какую-ту фигуру на фото с помощью такого кода:


        int width = canvas.getWidth();
        int height = canvas.getHeight();
        mPaint.setColor(Color.BLUE);
        mPaint.setStyle(Paint.Style.FILL);
        mPaint.setAntiAlias(true);
        mPaint.setTextSize(32);
        canvas.drawText("(_'|'_)", 30, height - 32, mPaint);

Но как теперь это сохранить?


Ответы (2 шт):

Автор решения: Danny
public Bitmap saveSignature(){

      Bitmap  bitmap = Bitmap.createBitmap(this.getWidth(), this.getHeight(), Bitmap.Config.ARGB_8888);
      Canvas canvas = new Canvas(bitmap);
      this.draw(canvas); 

      File file = new File(Environment.getExternalStorageDirectory() + "/sign.png");

      try {
           bitmap.compress(Bitmap.CompressFormat.PNG, 100, new FileOutputStream(file));
      } catch (Exception e) {
           e.printStackTrace();
      }

      return bitmap;
  }

Отсюда https://stackoverflow.com/a/20228315/5152519

→ Ссылка
Автор решения: Style-7

Создайте функцию рисования которая принимает canvas как параметр, тогда вы сможете рисовать и на Bitmap в том числе.

Bitmap bm = Bitmap.createBitmap( 400, 300, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas( bm );
DrawSomthing( canvas );
→ Ссылка