亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

畫布上的圖像到JPEG文件

畫布上的圖像到JPEG文件

慕的地6264312 2019-10-18 10:04:20
我正在畫布上繪制2D圖像。我想將畫布上顯示的圖像保存為JPEG文件,該怎么辦?
查看完整描述

3 回答

?
jeck貓

TA貢獻1909條經驗 獲得超7個贊

創建一個空的位圖

創建一個新的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); 


查看完整回答
反對 回復 2019-10-18
?
九州編程

TA貢獻1785條經驗 獲得超4個贊

設置工程圖緩存已啟用

畫任何你想要的

從視圖獲取位圖對象

壓縮并保存圖像文件


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);

        }


    }


}


查看完整回答
反對 回復 2019-10-18
?
守著一只汪

TA貢獻1872條經驗 獲得超4個贊

畫布到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();

        }

    }

}


查看完整回答
反對 回復 2019-10-18
  • 3 回答
  • 0 關注
  • 495 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號