Android 之 把bitmap保存为本地png图片
调用代码
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);
工具类:
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;
}
}
还没有评论,来说两句吧...