@@ -54,6 +54,7 @@ public static ColorBuffer dither(FullSpacedColorBuffer buffer, ColorPalette pale
5454
5555 int mc = palette .closestColor (rgb );
5656
57+ int a ;
5758 int r = (mc >> 16 ) & 0xFF ;
5859 int g = (mc >> 8 ) & 0xFF ;
5960 int b = (mc ) & 0xFF ;
@@ -67,36 +68,40 @@ public static ColorBuffer dither(FullSpacedColorBuffer buffer, ColorPalette pale
6768 if (!(x == w - 1 )) {
6869 index = x + 1 + y * w ;
6970 rgb = src [index ];
71+ a = (rgb >> 24 ) & 0xFF ;
7072 r = Math .max (0 , Math .min (255 , (int ) (((rgb >> 16 ) & 0xFF ) + (errorR * FS_ERROR ))));
7173 g = Math .max (0 , Math .min (255 , (int ) (((rgb >> 8 ) & 0xFF ) + (errorG * FS_ERROR ))));
7274 b = Math .max (0 , Math .min (255 , (int ) (((rgb ) & 0xFF ) + (errorB * FS_ERROR ))));
73- src [index ] = (r << 16 ) | (g << 8 ) | b ;
75+ src [index ] = (a << 24 ) | ( r << 16 ) | (g << 8 ) | b ;
7476
7577 if (!(y == h - 1 )) {
7678 index = x + 1 + (y + 1 ) * w ;
7779 rgb = src [index ];
80+ a = (rgb >> 24 ) & 0xFF ;
7881 r = Math .max (0 , Math .min (255 , (int ) (((rgb >> 16 ) & 0xFF ) + (errorR * FS_ERROR2 ))));
7982 g = Math .max (0 , Math .min (255 , (int ) (((rgb >> 8 ) & 0xFF ) + (errorG * FS_ERROR2 ))));
8083 b = Math .max (0 , Math .min (255 , (int ) (((rgb ) & 0xFF ) + (errorB * FS_ERROR2 ))));
81- src [index ] = (r << 16 ) | (g << 8 ) | b ;
84+ src [index ] = (a << 24 ) | ( r << 16 ) | (g << 8 ) | b ;
8285 }
8386 }
8487
8588 if (!(y == h - 1 )) {
8689 index = x + (y + 1 ) * w ;
8790 rgb = src [index ];
91+ a = (rgb >> 24 ) & 0xFF ;
8892 r = Math .max (0 , Math .min (255 , (int ) (((rgb >> 16 ) & 0xFF ) + (errorR * FS_ERROR3 ))));
8993 g = Math .max (0 , Math .min (255 , (int ) (((rgb >> 8 ) & 0xFF ) + (errorG * FS_ERROR3 ))));
9094 b = Math .max (0 , Math .min (255 , (int ) (((rgb ) & 0xFF ) + (errorB * FS_ERROR3 ))));
91- src [index ] = (r << 16 ) | (g << 8 ) | b ;
95+ src [index ] = (a << 24 ) | ( r << 16 ) | (g << 8 ) | b ;
9296
9397 if (!(x == 0 )) {
9498 index = x - 1 + (y + 1 ) * w ;
9599 rgb = src [index ];
100+ a = (rgb >> 24 ) & 0xFF ;
96101 r = Math .max (0 , Math .min (255 , (int ) (((rgb >> 16 ) & 0xFF ) + (errorR * FS_ERROR4 ))));
97102 g = Math .max (0 , Math .min (255 , (int ) (((rgb >> 8 ) & 0xFF ) + (errorG * FS_ERROR4 ))));
98103 b = Math .max (0 , Math .min (255 , (int ) (((rgb ) & 0xFF ) + (errorB * FS_ERROR4 ))));
99- src [index ] = (r << 16 ) | (g << 8 ) | b ;
104+ src [index ] = (a << 24 ) | ( r << 16 ) | (g << 8 ) | b ;
100105 }
101106 }
102107 }
0 commit comments