现在的位置: 首页 > 综合 > 正文

bitmap写名字

2018年09月01日 ⁄ 综合 ⁄ 共 1415字 ⁄ 字号 评论关闭
/**
     * 创建图片,并在图片右下角写上图片的名字
     *
     * @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;
	}

【上篇】
【下篇】

抱歉!评论已关闭.