@@ -1065,6 +1065,30 @@ unpackBGRA(UINT8 *_out, const UINT8 *in, int pixels) {
1065
1065
}
1066
1066
}
1067
1067
1068
+ static void
1069
+ unpackBGRA16L (UINT8 * _out , const UINT8 * in , int pixels ) {
1070
+ int i ;
1071
+ /* 16-bit RGBA, little-endian order, reversed words */
1072
+ for (i = 0 ; i < pixels ; i ++ ) {
1073
+ UINT32 iv = MAKE_UINT32 (in [5 ], in [3 ], in [1 ], in [7 ]);
1074
+ memcpy (_out , & iv , sizeof (iv ));
1075
+ in += 8 ;
1076
+ _out += 4 ;
1077
+ }
1078
+ }
1079
+
1080
+ static void
1081
+ unpackBGRA16B (UINT8 * _out , const UINT8 * in , int pixels ) {
1082
+ int i ;
1083
+ /* 16-bit RGBA, big-endian order, reversed words */
1084
+ for (i = 0 ; i < pixels ; i ++ ) {
1085
+ UINT32 iv = MAKE_UINT32 (in [4 ], in [2 ], in [0 ], in [6 ]);
1086
+ memcpy (_out , & iv , sizeof (iv ));
1087
+ in += 8 ;
1088
+ _out += 4 ;
1089
+ }
1090
+ }
1091
+
1068
1092
/* Unpack to "CMYK" image */
1069
1093
1070
1094
static void
@@ -1574,6 +1598,8 @@ static struct {
1574
1598
{"RGBA" , "RGBA;16L" , 64 , unpackRGBA16L },
1575
1599
{"RGBA" , "RGBA;16B" , 64 , unpackRGBA16B },
1576
1600
{"RGBA" , "BGRA" , 32 , unpackBGRA },
1601
+ {"RGBA" , "BGRA;16L" , 64 , unpackBGRA16L },
1602
+ {"RGBA" , "BGRA;16B" , 64 , unpackBGRA16B },
1577
1603
{"RGBA" , "ARGB" , 32 , unpackARGB },
1578
1604
{"RGBA" , "ABGR" , 32 , unpackABGR },
1579
1605
{"RGBA" , "YCCA;P" , 32 , ImagingUnpackYCCA },
0 commit comments