首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在android中添加水印图片

在android中添加水印图片
EN

Stack Overflow用户
提问于 2012-11-07 17:28:36
回答 3查看 10.4K关注 0票数 6

我有代码在图像中添加水印像这样

代码语言:javascript
复制
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;
        }

我用下面的代码调用这个函数

代码语言:javascript
复制
mark(bitmap, "watermark", b, null, c, 100, false);
            imgshoot.setImageBitmap(bitmap);

但是什么也没发生,你能帮我吗??谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-11-09 11:33:16

它解决了,我只需要对代码做一点修改,谢谢你的建议Doomsknight :)

代码语言:javascript
复制
 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;
}

我用这个函数调用

代码语言:javascript
复制
bitmap = mark(bitmap, "Hallo");
imgshoot.setImageBitmap(bitmap);
票数 10
EN

Stack Overflow用户

发布于 2012-11-07 17:44:31

您没有将返回的位图result赋值给任何对象。用新的位图替换旧的位图。

代码语言:javascript
复制
 bitmap = mark(bitmap, "watermark", b, null, c, 100, false);
 imgshoot.setImageBitmap(bitmap);

编辑:

根据评论,您仍然有问题:尝试硬编码一些参数,以进行测试。看看你的病人有没有问题。

代码语言:javascript
复制
        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
票数 2
EN

Stack Overflow用户

发布于 2015-11-26 01:27:27

代码语言:javascript
复制
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;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13266736

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档