【问题标题】:Add Watermark to an image just like flipboard in Android将水印添加到图像中,就像 Android 中的翻转板一样
【发布时间】:2013-07-02 19:04:56
【问题描述】:

我想像 Flipboard 一样给图片添加水印。

如您所见,文本添加在图像底部,黑色透明背景。我想做同样的事情。到目前为止,我已经设法在图像上写了文字,但我无法像上图那样让它的背景黑色透明。

这是我目前从here 找到的代码。

public Bitmap mark(Bitmap src, String watermark) {
    int w = src.getWidth();
    int h = src.getHeight();

    Shader shader = new LinearGradient(0, 0, 100, 0, Color.TRANSPARENT, Color.BLACK, TileMode.CLAMP);

    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.WHITE);
    paint.setTextSize(50);
    paint.setAntiAlias(true);
    paint.setShader(shader);
    paint.setUnderlineText(false);
    canvas.drawText(watermark, 10 , h-15, paint);

    return result;
}

【问题讨论】:

    标签: android image canvas watermark


    【解决方案1】:

    我认为它不需要渐变,你可以使用简单的颜色和drawRect()方法来绘制它。

    示例代码如下,我将黑色背景大小作为整个图像的 25%。

    public Bitmap mark(Bitmap src, String watermark) {
        int w = src.getWidth();
        int h = src.getHeight();
    
        Paint bgPaint=new Paint();
        bgPaint.setColor(Color.parse("AA000000"));  //transparent black,change opacity by changing hex value "AA" between "00" and "FF"
    
        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.WHITE);
        paint.setTextSize(50);
        paint.setAntiAlias(true);
        paint.setUnderlineText(false);
    
        //should draw background first,order is important
        int left=0;
        int right=w;
        int bottom=h;
        int top=bottom-(h*.25);
        canvas.drawRect(left,top,right,bottom,bgPaint);
    
        canvas.drawText(watermark, 10 , h-15, paint);
    
    return result;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-06
      • 1970-01-01
      • 2012-09-25
      • 2012-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多