From e006dcc61ee6976fed2199ee9da7f30f4b7ffcbb Mon Sep 17 00:00:00 2001 From: Andrew Karpushin Date: Tue, 16 Aug 2016 19:47:38 +0300 Subject: [PATCH] added tests for dxt3 compression format --- PIL/DdsImagePlugin.py | 2 +- ...dxt3-argb-8bbp-explicitalpha_MipMaps-1.png | Bin 0 -> 36325 bytes Tests/test_file_dds.py | 21 +++++++++++++++--- 3 files changed, 19 insertions(+), 4 deletions(-) create mode 100644 Tests/images/dxt3-argb-8bbp-explicitalpha_MipMaps-1.png diff --git a/PIL/DdsImagePlugin.py b/PIL/DdsImagePlugin.py index 92e18912b..b7725872f 100644 --- a/PIL/DdsImagePlugin.py +++ b/PIL/DdsImagePlugin.py @@ -188,7 +188,7 @@ def _dxt3(data, width, height): for j in range(4): for i in range(4): - alpha = ((ai >> 4 * (4 * j + i)) & 15) * 16 + alpha = ((ai >> 4 * (4 * j + i)) & 15) * 17 # map alpha to range 0-255 cc = (code >> 2 * (4 * j + i)) & 3 if cc == 0: diff --git a/Tests/images/dxt3-argb-8bbp-explicitalpha_MipMaps-1.png b/Tests/images/dxt3-argb-8bbp-explicitalpha_MipMaps-1.png new file mode 100644 index 0000000000000000000000000000000000000000..25d227b6b7d6e640f500e069feec8d0bb777f1b5 GIT binary patch literal 36325 zcmV)!K#;$QP)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006 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 mI4v