-
-
Notifications
You must be signed in to change notification settings - Fork 2.4k
Closed
Description
When the C code checks the given input and output modes it checks against this list: RGB, RGBA, RGBX, RGBA;16B, CMYK, L, L;16, L;16B, YCCA, YCC, and LAB.
Lines 214 to 244 in e63ae38
| static cmsUInt32Number | |
| findLCMStype(char *PILmode) { | |
| if (strcmp(PILmode, "RGB") == 0) { | |
| return TYPE_RGBA_8; | |
| } else if (strcmp(PILmode, "RGBA") == 0) { | |
| return TYPE_RGBA_8; | |
| } else if (strcmp(PILmode, "RGBX") == 0) { | |
| return TYPE_RGBA_8; | |
| } else if (strcmp(PILmode, "RGBA;16B") == 0) { | |
| return TYPE_RGBA_16; | |
| } else if (strcmp(PILmode, "CMYK") == 0) { | |
| return TYPE_CMYK_8; | |
| } else if (strcmp(PILmode, "L") == 0) { | |
| return TYPE_GRAY_8; | |
| } else if (strcmp(PILmode, "L;16") == 0) { | |
| return TYPE_GRAY_16; | |
| } else if (strcmp(PILmode, "L;16B") == 0) { | |
| return TYPE_GRAY_16_SE; | |
| } else if (strcmp(PILmode, "YCCA") == 0) { | |
| return TYPE_YCbCr_8; | |
| } else if (strcmp(PILmode, "YCC") == 0) { | |
| return TYPE_YCbCr_8; | |
| } else if (strcmp(PILmode, "LAB") == 0) { | |
| // LabX equivalent like ALab, but not reversed -- no #define in lcms2 | |
| return (COLORSPACE_SH(PT_LabV2) | CHANNELS_SH(3) | BYTES_SH(1) | EXTRA_SH(1)); | |
| } | |
| else { | |
| /* take a wild guess... */ | |
| return TYPE_GRAY_8; | |
| } | |
| } |
However, only RGB, RGBA, RGBX, CMYK, L, and LAB are actual imaging modes. RGBA;16B, L;16, and L;16B are rawmodes, YCCA partially exists as a rawmode named YCCA;P, and YCC is a mode but is named YCbCr. That last one is easy enough to fix by just using the correct name, but it doesn't seem like it's possible to use the other four.
Metadata
Metadata
Assignees
Labels
No labels