Skip to content

Commit 18c3c16

Browse files
fix fillRect with alpha image
1 parent e3af657 commit 18c3c16

File tree

2 files changed

+3
-2
lines changed

2 files changed

+3
-2
lines changed

lib/src/draw/fill_rect.dart

+2-1
Original file line numberDiff line numberDiff line change
@@ -103,11 +103,12 @@ Image fillRect(Image src,
103103
while (iter.moveNext()) {
104104
final p = iter.current;
105105
final m = mask?.getPixel(p.x, p.y).getChannelNormalized(maskChannel) ?? 1;
106+
final am = color.a * m;
106107
p
107108
..r = mix(p.r, color.r, a * m)
108109
..g = mix(p.g, color.g, a * m)
109110
..b = mix(p.b, color.b, a * m)
110-
..a = p.a * (1 - (color.a * m));
111+
..a = p.a * (1 - am) + am;
111112
}
112113
}
113114

test/draw/fill_rect_test.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ void main() {
3535
expect(p, equals([255, 0, 0, 255]));
3636

3737
p = i0.getPixel(195, 195);
38-
expect(p, equals([0, 128, 0, 0]));
38+
expect(p, equals([0, 128, 0, 128]));
3939

4040
final mask = Command()
4141
..createImage(width: 256, height: 256)

0 commit comments

Comments
 (0)