From 91776f25892d9bb6a3039d4572b4c751456ea020 Mon Sep 17 00:00:00 2001 From: Yay295 Date: Sun, 21 Apr 2024 22:54:58 -0500 Subject: [PATCH] use mode structs in TiffDecode.c --- src/libImaging/Mode.h | 4 ++++ src/libImaging/TiffDecode.c | 20 ++++++++------------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/libImaging/Mode.h b/src/libImaging/Mode.h index 09810b584..f953d586f 100644 --- a/src/libImaging/Mode.h +++ b/src/libImaging/Mode.h @@ -79,11 +79,13 @@ extern const RawMode * const IMAGING_RAWMODE_1_IR; extern const RawMode * const IMAGING_RAWMODE_1_R; extern const RawMode * const IMAGING_RAWMODE_A; extern const RawMode * const IMAGING_RAWMODE_ABGR; +extern const RawMode * const IMAGING_RAWMODE_A_16N; extern const RawMode * const IMAGING_RAWMODE_B; extern const RawMode * const IMAGING_RAWMODE_BGR; extern const RawMode * const IMAGING_RAWMODE_BGRA; extern const RawMode * const IMAGING_RAWMODE_BGRX; extern const RawMode * const IMAGING_RAWMODE_BGRa; +extern const RawMode * const IMAGING_RAWMODE_B_16N; extern const RawMode * const IMAGING_RAWMODE_C; extern const RawMode * const IMAGING_RAWMODE_CMYK_I; extern const RawMode * const IMAGING_RAWMODE_CMYK_L; @@ -92,6 +94,7 @@ extern const RawMode * const IMAGING_RAWMODE_Cr; extern const RawMode * const IMAGING_RAWMODE_F_32F; extern const RawMode * const IMAGING_RAWMODE_F_32NF; extern const RawMode * const IMAGING_RAWMODE_G; +extern const RawMode * const IMAGING_RAWMODE_G_16N; extern const RawMode * const IMAGING_RAWMODE_H; extern const RawMode * const IMAGING_RAWMODE_I_32NS; extern const RawMode * const IMAGING_RAWMODE_I_32S; @@ -108,6 +111,7 @@ extern const RawMode * const IMAGING_RAWMODE_R; extern const RawMode * const IMAGING_RAWMODE_RGBA_L; extern const RawMode * const IMAGING_RAWMODE_RGBX_L; extern const RawMode * const IMAGING_RAWMODE_RGB_L; +extern const RawMode * const IMAGING_RAWMODE_R_16N; extern const RawMode * const IMAGING_RAWMODE_S; extern const RawMode * const IMAGING_RAWMODE_V; extern const RawMode * const IMAGING_RAWMODE_X; diff --git a/src/libImaging/TiffDecode.c b/src/libImaging/TiffDecode.c index e4da9162d..9d1d1db33 100644 --- a/src/libImaging/TiffDecode.c +++ b/src/libImaging/TiffDecode.c @@ -246,14 +246,10 @@ _pickUnpackers( // We'll pick appropriate set of unpackers depending on planar_configuration // It does not matter if data is RGB(A), CMYK or LUV really, // we just copy it plane by plane - unpackers[0] = - ImagingFindUnpacker("RGBA", bits_per_sample == 16 ? "R;16N" : "R", NULL); - unpackers[1] = - ImagingFindUnpacker("RGBA", bits_per_sample == 16 ? "G;16N" : "G", NULL); - unpackers[2] = - ImagingFindUnpacker("RGBA", bits_per_sample == 16 ? "B;16N" : "B", NULL); - unpackers[3] = - ImagingFindUnpacker("RGBA", bits_per_sample == 16 ? "A;16N" : "A", NULL); + unpackers[0] = ImagingFindUnpacker(IMAGING_MODE_RGBA, bits_per_sample == 16 ? IMAGING_RAWMODE_R_16N : IMAGING_RAWMODE_R, NULL); + unpackers[1] = ImagingFindUnpacker(IMAGING_MODE_RGBA, bits_per_sample == 16 ? IMAGING_RAWMODE_G_16N : IMAGING_RAWMODE_G, NULL); + unpackers[2] = ImagingFindUnpacker(IMAGING_MODE_RGBA, bits_per_sample == 16 ? IMAGING_RAWMODE_B_16N : IMAGING_RAWMODE_B, NULL); + unpackers[3] = ImagingFindUnpacker(IMAGING_MODE_RGBA, bits_per_sample == 16 ? IMAGING_RAWMODE_A_16N : IMAGING_RAWMODE_A, NULL); return im->bands; } else { @@ -642,7 +638,7 @@ ImagingLibTiffDecode( ); TRACE( ("Image: mode %s, type %d, bands: %d, xsize %d, ysize %d \n", - im->mode, + im->mode->name, im->type, im->bands, im->xsize, @@ -753,7 +749,7 @@ ImagingLibTiffDecode( if (!state->errcode) { // Check if raw mode was RGBa and it was stored on separate planes // so we have to convert it to RGBA - if (planes > 3 && strcmp(im->mode, "RGBA") == 0) { + if (planes > 3 && im->mode == IMAGING_MODE_RGBA) { uint16_t extrasamples; uint16_t *sampleinfo; ImagingShuffler shuffle; @@ -765,7 +761,7 @@ ImagingLibTiffDecode( if (extrasamples >= 1 && (sampleinfo[0] == EXTRASAMPLE_UNSPECIFIED || sampleinfo[0] == EXTRASAMPLE_ASSOCALPHA)) { - shuffle = ImagingFindUnpacker("RGBA", "RGBa", NULL); + shuffle = ImagingFindUnpacker(IMAGING_MODE_RGBA, IMAGING_RAWMODE_RGBa, NULL); for (y = state->yoff; y < state->ysize; y++) { UINT8 *ptr = (UINT8 *)im->image[y + state->yoff] + @@ -976,7 +972,7 @@ ImagingLibTiffEncode(Imaging im, ImagingCodecState state, UINT8 *buffer, int byt ); TRACE( ("Image: mode %s, type %d, bands: %d, xsize %d, ysize %d \n", - im->mode, + im->mode->name, im->type, im->bands, im->xsize,