提取图像Alpha位图

ndroid中的ARGB_8888类型的位图由Alpha(透明度)、Red(红)、Green(绿)、Blue(蓝)四部分组成,其中Alpha部分也就是常说的Alpha通道,它控制图像的透明度。在Android中Bitmap类提供了extractAlpha()方法,可以把位图中的Alpha部分提取出来作为一个新的位图,然后与填充颜色后的Paint结合重新绘制一个新图像。下面通过一个例子来说明Bitmap类的extractAlpha()方法的使用,Java代码如下:

  // 提取图像Alpha位图
  public Bitmap getAlphaBitmap() {
    BitmapDrawable mBitmapDrawable =
        (BitmapDrawable) getResources().getDrawable(R.drawable.enemy_infantry_ninja);
    Bitmap mBitmap = mBitmapDrawable.getBitmap();

    // BitmapDrawable的getIntrinsicWidth()方法,Bitmap的getWidth()方法
    // 注意这两个方法的区别
    // Bitmap mAlphaBitmap = Bitmap.createBitmap(mBitmapDrawable.getIntrinsicWidth(),
    // mBitmapDrawable.getIntrinsicHeight(), Config.ARGB_8888);
    Bitmap mAlphaBitmap =
        Bitmap.createBitmap(mBitmap.getWidth(), mBitmap.getHeight(), Config.ARGB_8888);

    Canvas mCanvas = new Canvas(mAlphaBitmap);
    Paint mPaint = new Paint();

    mPaint.setColor(Color.BLUE);
    // 从原位图中提取只包含alpha的位图
    Bitmap alphaBitmap = mBitmap.extractAlpha();
    // 在画布上(mAlphaBitmap)绘制alpha位图
    mCanvas.drawBitmap(alphaBitmap, 0, 0, mPaint);

    return mAlphaBitmap;
  }

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值