/** * 创建图片,并在图片右下角写上图片的名字 * * @param bitmap * @param pixels * @return */ public static Bitmap toWrittenBitmap(Bitmap bitmap, int w, int h, String name) { Bitmap output = Bitmap.createBitmap(w, h, Config.ARGB_8888); Canvas canvas = new Canvas(output); final Paint paint = new Paint(); paint.setAntiAlias(true); canvas.drawARGB(0, 0, 0, 0); canvas.drawBitmap(bitmap, (w - bitmap.getWidth()) / 2, (h - bitmap.getHeight()) / 2, paint); paint.setTextSize(15); float x = paint.measureText(name); if (x > w) x = w - 2; Rect rect = new Rect((int) (w - x), h - 18, w, h); paint.setColor(Color.argb(100, 255, 255, 255)); canvas.drawRect(rect, paint); paint.setColor(Color.BLACK); canvas.clipRect(rect); canvas.drawText(name, w - x, h - 2, paint); return output; }
public static Bitmap toCircleBitmap(Bitmap bitmap) { Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Config.ARGB_8888); Canvas canvas = new Canvas(output); Paint paint = new Paint(); Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight()); RectF rectF = new RectF(rect); paint.setAntiAlias(true); canvas.drawARGB(0, 0, 0, 0); // paint.setColor(Color.GREEN); // int radius = bitmap.getWidth()>bitmap.getHeight() ? // bitmap.getWidth()/2:bitmap.getWidth()/2; // paint.setStrokeWidth(5); canvas.drawRoundRect(rectF, bitmap.getWidth() / 2, bitmap.getHeight() / 2, paint); // canvas.drawCircle(radius/2, radius/2, radius, paint); paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));// 遮罩 rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight()); canvas.drawBitmap(bitmap, rect, rect, paint); return output; }