画布上的图像到JPEG文件

我正在画布上绘制2D图像。

我想将画布上显示的图像保存为JPEG文件,该怎么办?


慕的地6264312
浏览 465回答 3
3回答

jeck猫

创建一个空的位图创建一个新的Canvas对象并将此位图传递给它调用view.draw(Canvas),将刚刚创建的画布对象传递给它。有关详细信息,请参见方法文档。使用Bitmap.compress()可以将位图的内容写入到OutputStream文件中。伪代码: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); 

九州编程

设置工程图缓存已启用画任何你想要的从视图获取位图对象压缩并保存图像文件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);        }    }}

守着一只汪

画布到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 Filetry{    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();        }    }}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Android