2015-11-08 79 views
2

我正在嘗試將圖像水印添加到其他圖像。我有以下代碼,但我面臨一個問題。我不知道這個'資源資源'是什麼。以編程方式在Android中添加圖像WaterMark

任何人都可以幫忙嗎?

public static Bitmap addWatermark(Resources res, Bitmap source) 
{ 
    int w, h; 
    Canvas c; 
    Paint paint; 
    Bitmap bmp, watermark; 

    Matrix matrix; 
    float scale; 
    RectF r; 

    w = source.getWidth(); 
    h = source.getHeight(); 


    bmp = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888); 

    paint = new Paint(Paint.ANTI_ALIAS_FLAG | Paint.DITHER_FLAG |Paint.FILTER_BITMAP_FLAG);   


    c = new Canvas(bmp); 
    c.drawBitmap(source, 0, 0, paint); 

    watermark = BitmapFactory.decodeResource(res, R.drawable.android_mo); 
    scale = (float) (((float) h * 0.10)/(float) watermark.getHeight()); 

    matrix = new Matrix(); 
    matrix.postScale(scale, scale); 
    r = new RectF(0, 0, watermark.getWidth(), watermark.getHeight()); 
    matrix.mapRect(r); 
    matrix.postTranslate(w - r.width(), h - r.height()); 

    c.drawBitmap(watermark, matrix, paint); 
    watermark.recycle(); 

    return bmp; 
} 

回答

0

它的資源對象,你可以通過有或activity.getResources()fragment.getResources()

0

主要位圖BMP1和BMP2 transparante位:

public static Bitmap overlay(Bitmap bmp1, Bitmap bmp2) { 
      Bitmap bmOverlay = Bitmap.createBitmap(bmp1.getWidth(), bmp1.getHeight(), bmp1.getConfig()); 
      Canvas canvas = new Canvas(bmOverlay); 
      canvas.drawBitmap(bmp1, new Matrix(), null); 
      canvas.drawBitmap(bmp2, 0, 0, null); 
      return bmOverlay; 
     } 
相關問題