Imagen en lienzo a archivo JPEG

Estoy dibujando imágenes 2D en el lienzo.

Quiero guardar la imagen mostrada en el lienzo en el archivo JPEG, ¿cómo puedo hacerlo?

  1. Crear un mapa de bits vacío
  2. Crear un nuevo objeto Canvas y pasar este mapa de bits a él
  3. Call view.draw (Canvas) pasándolo al objeto de lienzo que acaba de crear. Consulte la documentación del método para obtener más detalles.
  4. Utilice Bitmap.compress () para escribir el contenido del mapa de bits en un archivo OutputStream, tal vez.

Pseudo código:

Bitmap bitmap = Bitmap.createBitmap( view.getWidth(), view.getHeight(), Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(bitmap); view.draw(canvas); bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos); 
  1. Set Caché de dibujo activado
  2. Dibuja lo que quieras
  3. Obtener el objeto Bitmap desde la vista
  4. Comprimir y guardar el archivo de imagen
 import java.io.File; import java.io.FileOutputStream; import android.app.Activity; import android.content.Context; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.os.Bundle; import android.util.Log; import android.view.View; public class CanvasTest extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Draw2d d = new Draw2d(this); setContentView(d); } public class Draw2d extends View { public Draw2d(Context context) { super(context); setDrawingCacheEnabled(true); } @Override protected void onDraw(Canvas c) { Paint paint = new Paint(); paint.setColor(Color.RED); c.drawCircle(50, 50, 30, paint); try { getDrawingCache().compress(Bitmap.CompressFormat.JPEG, 100, new FileOutputStream(new File("/mnt/sdcard/arun.jpg"))); } catch (Exception e) { Log.e("Error--------->", e.toString()); } super.onDraw(c); } } } 

Lona a JPG:

 Canvas canvas = null; FileOutputStream fos = null; Bitmap bmpBase = null; bmpBase = Bitmap.createBitmap(image_width, image_height, Bitmap.Config.ARGB_8888); canvas = new Canvas(bmpBase); // draw what ever you want canvas.draw... // Save Bitmap to File try { fos = new FileOutputStream(your_path); bmpBase.compress(Bitmap.CompressFormat.PNG, 100, fos); fos.flush(); fos.close(); fos = null; } catch (IOException e) { e.printStackTrace(); } finally { if (fos != null) { try { fos.close(); fos = null; } catch (IOException e) { e.printStackTrace(); } } } 
  • BitmapFactory.decodeResource () ignora la opción inPreferredConfig para las imágenes jpg
  • El tamaño de la imagen aumenta cuando se convierte de jpg a webp con un valor de calidad 100
  • Cómo comprimir Bitmap como JPEG con la pérdida de calidad al menos en Android?
  • Manera rápida de decodificar la imagen JPEG
  • API de acceso de decodificador JPEG HW
  • Cómo crear un GIF animado de JPEGs en Android (desarrollo)
  • ¿Cómo mostrar la imagen JPEG directamente desde la matriz de bytes (antes de guardar la imagen)?
  • ¿Cómo abrir un archivo JPG como un BITMAP con el JPG almacenado en el SDCARD?
  • Las imágenes JPEG tienen diferentes valores de píxeles en varios dispositivos
  • Copia de Android en el clipboard / clipdata
  • Dibujar texto en la imagen jpg android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.