diff --git a/libImaging/Access.c b/libImaging/Access.c index 292968f1c..05eb10c7c 100644 --- a/libImaging/Access.c +++ b/libImaging/Access.c @@ -227,6 +227,7 @@ ImagingAccessInit() ADD("I;16", line_16, get_pixel_16L, put_pixel_16L); ADD("I;16L", line_16, get_pixel_16L, put_pixel_16L); ADD("I;16B", line_16, get_pixel_16B, put_pixel_16B); + ADD("I;16S", line_16, get_pixel_16L, put_pixel_16L); ADD("I;32L", line_32, get_pixel_32L, put_pixel_32L); ADD("I;32B", line_32, get_pixel_32B, put_pixel_32B); ADD("F", line_32, get_pixel_32, put_pixel_32); diff --git a/libImaging/Pack.c b/libImaging/Pack.c index e6253fca4..f74e18e1b 100644 --- a/libImaging/Pack.c +++ b/libImaging/Pack.c @@ -614,6 +614,7 @@ static struct { {"I;16", "I;16", 16, copy2}, {"I;16B", "I;16B", 16, copy2}, {"I;16L", "I;16L", 16, copy2}, + {"I;16S", "I;16S", 16, copy2}, {"I;16", "I;16N", 16, packI16N_I16}, // LibTiff native->image endian. {"I;16L", "I;16N", 16, packI16N_I16}, {"I;16B", "I;16N", 16, packI16N_I16B}, diff --git a/libImaging/Storage.c b/libImaging/Storage.c index 615c5fa20..d20af29a1 100644 --- a/libImaging/Storage.c +++ b/libImaging/Storage.c @@ -116,7 +116,8 @@ ImagingNewPrologueSubtype(const char *mode, int xsize, int ysize, int size) im->type = IMAGING_TYPE_INT32; } else if (strcmp(mode, "I;16") == 0 || strcmp(mode, "I;16L") == 0 \ - || strcmp(mode, "I;16B") == 0 || strcmp(mode, "I;16N") == 0) { + || strcmp(mode, "I;16B") == 0 || strcmp(mode, "I;16N") == 0 \ + || strcmp(mode, "I;16S") == 0) { /* EXPERIMENTAL */ /* 16-bit raw integer images */ im->bands = 1; diff --git a/libImaging/Unpack.c b/libImaging/Unpack.c index c7b9a606c..183193983 100644 --- a/libImaging/Unpack.c +++ b/libImaging/Unpack.c @@ -1406,6 +1406,7 @@ static struct { {"I;16", "I;16", 16, copy2}, {"I;16B", "I;16B", 16, copy2}, {"I;16L", "I;16L", 16, copy2}, + {"I;16S", "I;16S", 16, copy2}, {"I;16", "I;16N", 16, unpackI16N_I16}, // LibTiff native->image endian. {"I;16L", "I;16N", 16, unpackI16N_I16}, // LibTiff native->image endian.