Skip to content

Commit 983dc16

Browse files
committed
Added BGR;15, BGR;16 and BGR;24 unpacking
1 parent 5514e81 commit 983dc16

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

Tests/test_lib_pack.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -340,6 +340,13 @@ def test_RGB(self):
340340
self.assert_unpack("RGB", "G;16N", 2, (0, 1, 0), (0, 3, 0), (0, 5, 0))
341341
self.assert_unpack("RGB", "B;16N", 2, (0, 0, 1), (0, 0, 3), (0, 0, 5))
342342

343+
def test_BGR(self):
344+
self.assert_unpack("BGR;15", "BGR;15", 3, (8, 131, 0), (24, 0, 8), (41, 131, 8))
345+
self.assert_unpack(
346+
"BGR;16", "BGR;16", 3, (8, 64, 0), (24, 129, 0), (41, 194, 0)
347+
)
348+
self.assert_unpack("BGR;24", "BGR;24", 3, (1, 2, 3), (4, 5, 6), (7, 8, 9))
349+
343350
def test_RGBA(self):
344351
self.assert_unpack("RGBA", "LA", 2, (1, 1, 1, 2), (3, 3, 3, 4), (5, 5, 5, 6))
345352
self.assert_unpack(

src/libImaging/Unpack.c

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1238,6 +1238,12 @@ copy2(UINT8 *out, const UINT8 *in, int pixels) {
12381238
memcpy(out, in, pixels * 2);
12391239
}
12401240

1241+
static void
1242+
copy3(UINT8 *out, const UINT8 *in, int pixels) {
1243+
/* BGR;24 */
1244+
memcpy(out, in, pixels * 3);
1245+
}
1246+
12411247
static void
12421248
copy4(UINT8 *out, const UINT8 *in, int pixels) {
12431249
/* RGBA, CMYK quadruples */
@@ -1590,6 +1596,10 @@ static struct {
15901596
{"RGB", "G;16B", 16, band116B},
15911597
{"RGB", "B;16B", 16, band216B},
15921598

1599+
{"BGR;15", "BGR;15", 16, copy2},
1600+
{"BGR;16", "BGR;16", 16, copy2},
1601+
{"BGR;24", "BGR;24", 16, copy3},
1602+
15931603
/* true colour w. alpha */
15941604
{"RGBA", "LA", 16, unpackRGBALA},
15951605
{"RGBA", "LA;16B", 32, unpackRGBALA16B},

0 commit comments

Comments
 (0)