我有代码在图像中添加水印像这样
public static Bitmap mark(Bitmap src, String watermark, Point location, Color color, int alpha, int size, boolean underline) {
int w = src.getWidth();
int h = src.getHeight();
Bitmap result = Bitmap.createBitmap(w, h, src.getConfig());
Canvas canvas = new Canvas(result);
canvas.drawBitmap(src, 0, 0, null);
Paint paint = new Paint();
paint.setColor(color.RED);
paint.setAlpha(alpha);
paint.setTextSize(size);
paint.setAntiAlias(true);
paint.setUnderlineText(underline);
canvas.drawText(watermark, location.x, location.y, paint);
return result;
}我用下面的代码调用这个函数
mark(bitmap, "watermark", b, null, c, 100, false);
imgshoot.setImageBitmap(bitmap);但是什么也没发生,你能帮我吗??谢谢
发布于 2012-11-09 11:33:16
它解决了,我只需要对代码做一点修改,谢谢你的建议Doomsknight :)
public static Bitmap mark(Bitmap src, String watermark) {
int w = src.getWidth();
int h = src.getHeight();
Bitmap result = Bitmap.createBitmap(w, h, src.getConfig());
Canvas canvas = new Canvas(result);
canvas.drawBitmap(src, 0, 0, null);
Paint paint = new Paint();
paint.setColor(Color.RED);
paint.setTextSize(18);
paint.setAntiAlias(true);
paint.setUnderlineText(true);
canvas.drawText(watermark, 20, 25, paint);
return result;
}我用这个函数调用
bitmap = mark(bitmap, "Hallo");
imgshoot.setImageBitmap(bitmap);发布于 2012-11-07 17:44:31
您没有将返回的位图result赋值给任何对象。用新的位图替换旧的位图。
bitmap = mark(bitmap, "watermark", b, null, c, 100, false);
imgshoot.setImageBitmap(bitmap);编辑:
根据评论,您仍然有问题:尝试硬编码一些参数,以进行测试。看看你的病人有没有问题。
Paint paint = new Paint();
paint.setColor(color.RED);
//paint.setAlpha(alpha);
paint.setTextSize(20); //size
//paint.setAntiAlias(true);
paint.setUnderlineText(underline);
canvas.drawText(watermark, 10, 10, paint); //location.x, location.y发布于 2015-11-26 01:27:27
private Bitmap addWaterMark(Bitmap src)
{
int w = src.getWidth();
int h = src.getHeight();
Bitmap result = Bitmap.createBitmap(w,h,src.getConfig());
Canvas canvas = new Canvas(result);
canvas.drawBitmap(src,0,0, null);
Bitmap waterMark = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.ic_laucher);
canvas.drawBitmap(waterMark,0,0,null);
return result;
}https://stackoverflow.com/questions/13266736
复制相似问题