From 290a6627938e2226f6f093acda07e7f40719a783 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Thu, 16 Jun 2022 19:07:10 +1000 Subject: [PATCH] Added fill decoder --- Tests/images/input_bw_fill.fpx | Bin 0 -> 33792 bytes Tests/test_file_fpx.py | 16 +++++++++++++++- src/PIL/FpxImagePlugin.py | 16 ++++++++++++++-- 3 files changed, 29 insertions(+), 3 deletions(-) create mode 100644 Tests/images/input_bw_fill.fpx diff --git a/Tests/images/input_bw_fill.fpx b/Tests/images/input_bw_fill.fpx new file mode 100644 index 0000000000000000000000000000000000000000..440ef444e240838450a4fdbf3d34d07a5574407b GIT binary patch literal 33792 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 ez{!A<0Ve}a2Am8y8K}?