Save the bitmap of Android as a local png image

Android saves the bitmap as a local png image

calling code

                Bitmap bitmap = Bitmap.createBitmap(720, 1280, Bitmap.Config.ARGB_8888);
                Canvas canvas = new Canvas(bitmap);
//                canvas.drawColor(Color.GREEN);
//                paint.setColor(Color.WHITE);
//                paint.setTextSize(100);
//                Log.e(TAG, "onDrawFrame: frame=" + frame);
//                String text = "当前帧数:" + frame++;
//                drawTextWithCenterPoint(canvas, 720 / 2, 1280 / 2, text, paint);
//                canvas.drawText(text, 0, 100, paint);
                //图片保存本地
                String fileDir = Environment.getExternalStorageDirectory() + "/111/aaa/";
                String fileName = "ksxy-" + System.currentTimeMillis() + ".png";
                String path = fileDir + fileName;
                if (!new File(fileDir).exists()) {
                    new File(fileDir).mkdirs();
                }
                BitmapUtils.bitmap2Path(bitmap, path);

Tools:

import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.util.Log;

import java.io.FileOutputStream;
import java.io.OutputStream;

public class BitmapUtils {
    /**
     * 文字生成图片
     * @param text
     * @param textSize
     * @param textColor
     * @param bgColor
     * @param padding
     * @return
     */
    public static Bitmap text2Bitmap(String text, int textSize, String textColor, String bgColor, int padding) {

        Paint paint = new Paint();
        paint.setColor(Color.parseColor(textColor));
        paint.setTextSize(textSize);
        paint.setStyle(Paint.Style.FILL);
        paint.setAntiAlias(true);

        float width = paint.measureText(text, 0, text.length());

        float top = paint.getFontMetrics().top;
        float bottom = paint.getFontMetrics().bottom;

        Bitmap bm = Bitmap.createBitmap((int) (width + padding * 2), (int) ((bottom - top) + padding * 2), Bitmap.Config.ARGB_8888);
        Canvas canvas = new Canvas(bm);

        canvas.drawColor(Color.parseColor(bgColor));
        canvas.drawText(text, padding, - top + padding, paint);
        return bm;
    }

    /**
     * 将bitmap转换为本地的图片
     *
     * @param bitmap
     * @return
     */
    public static String bitmap2Path(Bitmap bitmap, String path) {
        try {
            OutputStream os = new FileOutputStream(path);
            bitmap.compress(Bitmap.CompressFormat.PNG, 100, os);
            os.flush();
            os.close();
        } catch (Exception e) {
            Log.e("TAG", "", e);
        }
        return path;
    }

}

Guess you like

Origin blog.csdn.net/jun_tong/article/details/129949709