|
@@ -187,13 +187,11 @@ public class GetMaskFrame {
|
|
|
int maskYOffset = frame.y;
|
|
int maskYOffset = frame.y;
|
|
|
// 先从遮罩 maskArgb 取色
|
|
// 先从遮罩 maskArgb 取色
|
|
|
int maskColor = maskArgb[x + maskXOffset + (y + maskYOffset) * maskW];
|
|
int maskColor = maskArgb[x + maskXOffset + (y + maskYOffset) * maskW];
|
|
|
|
|
+ // 黑色部分不遮挡,红色部分被遮挡
|
|
|
int alpha = maskColor >>> 24;
|
|
int alpha = maskColor >>> 24;
|
|
|
- // 文字mask 黑色部分不遮挡,红色部分被遮挡
|
|
|
|
|
- if (isTxtMask) {
|
|
|
|
|
- int maskRed = (maskColor & 0x00ff0000) >>> 16;
|
|
|
|
|
- int txtAlpha = 255 - maskRed; // 红色部分算遮挡
|
|
|
|
|
- alpha = (int) ((txtAlpha / 255f) * (alpha / 255f) * 255f);
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ int maskRed = (maskColor & 0x00ff0000) >>> 16;
|
|
|
|
|
+ int redAlpha = 255 - maskRed; // 红色部分算遮挡
|
|
|
|
|
+ alpha = (int) ((redAlpha / 255f) * (alpha / 255f) * 255f);
|
|
|
// 最终color
|
|
// 最终color
|
|
|
int color = 0xff000000 + (alpha << 16) + (alpha << 8) + alpha;
|
|
int color = 0xff000000 + (alpha << 16) + (alpha << 8) + alpha;
|
|
|
|
|
|