c
<   if (cinfo->out_color_space == JCS_GRAYSCALE) {
---
>   static const struct {
>       J_COLOR_SPACE color_space;
>       void (*handler)(j_decompress_ptr cinfo);
>   } color_space_handlers[] = {
>       {JCS_GRAYSCALE, handle_grayscale},
>       {JCS_RGB565, handle_rgb565},
>       ...
>   };
>
>   for (int i = 0; i < sizeof(color_space_handlers) / sizeof(color_space_handlers[0]); i++) {
>       if (cinfo->out_color_space == color_space_handlers[i].color_space) {
>           color_space_handlers[i].handler(cinfo);
>           break;
>       }
>   }
