如何在 Android 上将位图的非矩形(例如椭圆形)部分 blit 到 Canvas 中?
考虑如何位图的矩形部分:
canvas.DrawBitmap(src,src_rect,dest_rect,paint)
.遗憾的是,对于非矩形区域没有相应的方法。
四种方法(也许您知道第五种?):
将你想要位图传输的矩形边界复制到一个中间位图中,然后将你不想位图传输的像素设置为透明,然后绘制该位图
制作掩码位图 - 有使用单独掩码进行 block 位传输的方法吗?
使用
BitmapShader
与drawArc()/drawCircle()
;但是,我不知道如何使矩阵 正确对齐;你将如何为这个操作初始化矩阵?使用非常非常复杂的裁剪区域
其中,选项 3 是我最想做的;但是,我不知道该怎么做;可以吗?
最佳答案
您可以使用选项 #3,它可能是最简单的。另一种方法是在中间位图 (ARGB8888
) 中绘制要剪辑的形状,然后使用 DstIn
或 DstOut
绘制原始位图> xfer 模式。
关于android - 在 Android Canvas 上绘制位图的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3824997/