mirror of
https://github.com/python-pillow/Pillow.git
synced 2025-01-13 18:56:17 +03:00
packing into 24bit
This commit is contained in:
parent
13d62c9f91
commit
cb9440a2f5
|
@ -527,7 +527,7 @@ static struct {
|
|||
{"YCbCr", "Cr", 8, band2},
|
||||
|
||||
/* LAB Color */
|
||||
{"LAB", "LAB", 24, ImagingPackRGB},
|
||||
{"LAB", "LAB", 24, copy3},
|
||||
{"LAB", "L", 8, band0},
|
||||
{"LAB", "A", 8, band1},
|
||||
{"LAB", "B", 8, band2},
|
||||
|
|
|
@ -180,9 +180,11 @@ ImagingNewPrologueSubtype(const char *mode, unsigned xsize, unsigned ysize,
|
|||
|
||||
} else if (strcmp(mode, "LAB") == 0) {
|
||||
/* 24-bit color, luminance, + 2 color channels */
|
||||
/* L is uint8, a,b are int8 */
|
||||
im->bands = 3;
|
||||
im->pixelsize = 4;
|
||||
im->linesize = xsize * 4;
|
||||
im->pixelsize = 3;
|
||||
im->linesize = (xsize*4 + 3) & -4;
|
||||
im->type = IMAGING_TYPE_SPECIAL;
|
||||
|
||||
} else {
|
||||
free(im);
|
||||
|
|
|
@ -674,6 +674,13 @@ copy2(UINT8* out, const UINT8* in, int pixels)
|
|||
memcpy(out, in, pixels*2);
|
||||
}
|
||||
|
||||
static void
|
||||
copy3(UINT8* out, const UINT8* in, int pixels)
|
||||
{
|
||||
/* LAB triples, 24bit */
|
||||
memcpy(out, in, 3 * pixels);
|
||||
}
|
||||
|
||||
static void
|
||||
copy4(UINT8* out, const UINT8* in, int pixels)
|
||||
{
|
||||
|
@ -958,7 +965,7 @@ static struct {
|
|||
{"YCbCr", "YCbCrK", 32, copy4},
|
||||
|
||||
/* LAB Color */
|
||||
{"LAB", "LAB", 24, ImagingUnpackRGB},
|
||||
{"LAB", "LAB", 24, copy3},
|
||||
{"LAB", "L", 8, band0},
|
||||
{"LAB", "A", 8, band1},
|
||||
{"LAB", "B", 8, band2},
|
||||
|
|
Loading…
Reference in New Issue
Block a user