@@ -17,6 +17,12 @@ class ImageProcessing {
1717 kernel: img.DitherKernel .falseFloydSteinberg);
1818 }
1919
20+ static img.Image bwStuckiDither (img.Image orgImg) {
21+ var image = img.Image .from (orgImg);
22+ return img.ditherImage (image,
23+ quantizer: img.BinaryQuantizer (), kernel: img.DitherKernel .stucki);
24+ }
25+
2026 static img.Image bwAtkinsonDither (img.Image orgImg) {
2127 var image = img.Image .from (orgImg);
2228 return img.ditherImage (image,
@@ -32,64 +38,48 @@ class ImageProcessing {
3238 static img.Image bwHalftoneDither (img.Image orgImg) {
3339 final image = img.Image .from (orgImg);
3440 img.grayscale (image);
35- img.colorHalftone (image);
41+ img.colorHalftone (image, size : 3 );
3642 return img.ditherImage (image, quantizer: img.BinaryQuantizer ());
3743 }
3844
3945 static img.Image bwrHalftone (img.Image orgImg) {
4046 var image = img.Image .from (orgImg);
4147
42- // Tri-color palette
43- final palette = img.PaletteUint8 (3 , 3 );
44- palette.setRgb (0 , 255 , 0 , 0 ); // red
45- palette.setRgb (1 , 0 , 0 , 0 ); // black
46- palette.setRgb (2 , 255 , 255 , 255 ); // white
47-
48- img.colorHalftone (image);
48+ img.colorHalftone (image, size: 3 );
4949 return img.ditherImage (image,
50- quantizer: RemapQuantizer (palette: palette ),
50+ quantizer: RemapQuantizer (palette: _createTriColorPalette () ),
5151 kernel: img.DitherKernel .floydSteinberg);
5252 }
5353
5454 static img.Image bwrFloydSteinbergDither (img.Image orgImg) {
5555 var image = img.Image .from (orgImg);
5656
57- // Tri-color palette
58- final palette = img.PaletteUint8 (3 , 3 );
59- palette.setRgb (0 , 255 , 0 , 0 ); // red
60- palette.setRgb (1 , 0 , 0 , 0 ); // black
61- palette.setRgb (2 , 255 , 255 , 255 ); // white
62-
6357 return img.ditherImage (image,
64- quantizer: RemapQuantizer (palette: palette ),
58+ quantizer: RemapQuantizer (palette: _createTriColorPalette () ),
6559 kernel: img.DitherKernel .floydSteinberg);
6660 }
6761
6862 static img.Image bwrFalseFloydSteinbergDither (img.Image orgImg) {
6963 var image = img.Image .from (orgImg);
7064
71- // Tri-color palette
72- final palette = img.PaletteUint8 (3 , 3 );
73- palette.setRgb (0 , 255 , 0 , 0 ); // red
74- palette.setRgb (1 , 0 , 0 , 0 ); // black
75- palette.setRgb (2 , 255 , 255 , 255 ); // white
76-
7765 return img.ditherImage (image,
78- quantizer: RemapQuantizer (palette: palette ),
66+ quantizer: RemapQuantizer (palette: _createTriColorPalette () ),
7967 kernel: img.DitherKernel .falseFloydSteinberg);
8068 }
8169
82- static img.Image bwrTriColorAtkinsonDither (img.Image orgImg) {
70+ static img.Image bwrStuckiDither (img.Image orgImg) {
8371 var image = img.Image .from (orgImg);
8472
85- // Tri-color palette
86- final palette = img.PaletteUint8 (3 , 3 );
87- palette.setRgb (0 , 255 , 0 , 0 ); // red
88- palette.setRgb (1 , 0 , 0 , 0 ); // black
89- palette.setRgb (2 , 255 , 255 , 255 ); // white
73+ return img.ditherImage (image,
74+ quantizer: RemapQuantizer (palette: _createTriColorPalette ()),
75+ kernel: img.DitherKernel .stucki);
76+ }
77+
78+ static img.Image bwrTriColorAtkinsonDither (img.Image orgImg) {
79+ var image = img.Image .from (orgImg);
9080
9181 return img.ditherImage (image,
92- quantizer: RemapQuantizer (palette: palette ),
82+ quantizer: RemapQuantizer (palette: _createTriColorPalette () ),
9383 kernel: img.DitherKernel .atkinson);
9484 }
9585
@@ -104,14 +94,16 @@ class ImageProcessing {
10494 static img.Image bwrNoDither (img.Image orgImg) {
10595 var image = img.Image .from (orgImg);
10696
107- // Tri-color palette
108- final palette = img.PaletteUint8 (3 , 3 );
109- palette.setRgb (0 , 255 , 0 , 0 ); // red
110- palette.setRgb (1 , 0 , 0 , 0 ); // black
111- palette.setRgb (2 , 255 , 255 , 255 ); // white
112-
11397 return img.ditherImage (image,
114- quantizer: RemapQuantizer (palette: palette ),
98+ quantizer: RemapQuantizer (palette: _createTriColorPalette () ),
11599 kernel: img.DitherKernel .none);
116100 }
117101}
102+
103+ img.PaletteUint8 _createTriColorPalette () {
104+ final palette = img.PaletteUint8 (3 , 3 );
105+ palette.setRgb (0 , 255 , 0 , 0 ); // red
106+ palette.setRgb (1 , 0 , 0 , 0 ); // black
107+ palette.setRgb (2 , 255 , 255 , 255 ); // white
108+ return palette;
109+ }
0 commit comments