@@ -46,22 +46,11 @@ add_item(const char *mode) {
4646/* fetch individual pixel */
4747
4848static void
49- get_pixel (Imaging im , int x , int y , void * color ) {
49+ get_pixel_32_2bands (Imaging im , int x , int y , void * color ) {
5050 char * out = color ;
51-
52- /* generic pixel access*/
53-
54- if (im -> image8 ) {
55- out [0 ] = im -> image8 [y ][x ];
56- } else {
57- UINT8 * p = (UINT8 * )& im -> image32 [y ][x ];
58- if (im -> type == IMAGING_TYPE_UINT8 && im -> bands == 2 ) {
59- out [0 ] = p [0 ];
60- out [1 ] = p [3 ];
61- return ;
62- }
63- memcpy (out , p , im -> pixelsize );
64- }
51+ UINT8 * p = (UINT8 * )& im -> image32 [y ][x ];
52+ out [0 ] = p [0 ];
53+ out [1 ] = p [3 ];
6554}
6655
6756static void
@@ -127,15 +116,6 @@ get_pixel_32B(Imaging im, int x, int y, void *color) {
127116
128117/* store individual pixel */
129118
130- static void
131- put_pixel (Imaging im , int x , int y , const void * color ) {
132- if (im -> image8 ) {
133- im -> image8 [y ][x ] = * ((UINT8 * )color );
134- } else {
135- memcpy (& im -> image32 [y ][x ], color , sizeof (INT32 ));
136- }
137- }
138-
139119static void
140120put_pixel_8 (Imaging im , int x , int y , const void * color ) {
141121 im -> image8 [y ][x ] = * ((UINT8 * )color );
@@ -186,8 +166,8 @@ ImagingAccessInit() {
186166 /* populate access table */
187167 ADD ("1" , get_pixel_8 , put_pixel_8 );
188168 ADD ("L" , get_pixel_8 , put_pixel_8 );
189- ADD ("LA" , get_pixel , put_pixel );
190- ADD ("La" , get_pixel , put_pixel );
169+ ADD ("LA" , get_pixel_32_2bands , put_pixel_32 );
170+ ADD ("La" , get_pixel_32_2bands , put_pixel_32 );
191171 ADD ("I" , get_pixel_32 , put_pixel_32 );
192172 ADD ("I;16" , get_pixel_16L , put_pixel_16L );
193173 ADD ("I;16L" , get_pixel_16L , put_pixel_16L );
@@ -197,7 +177,7 @@ ImagingAccessInit() {
197177 ADD ("I;32B" , get_pixel_32B , put_pixel_32B );
198178 ADD ("F" , get_pixel_32 , put_pixel_32 );
199179 ADD ("P" , get_pixel_8 , put_pixel_8 );
200- ADD ("PA" , get_pixel , put_pixel );
180+ ADD ("PA" , get_pixel_32_2bands , put_pixel_32 );
201181 ADD ("RGB" , get_pixel_32 , put_pixel_32 );
202182 ADD ("RGBA" , get_pixel_32 , put_pixel_32 );
203183 ADD ("RGBa" , get_pixel_32 , put_pixel_32 );
0 commit comments