Make WriteBitmapToPng() handle FPDFBitmap_BGR format.
FPDFViewEmbedderTest includes test cases for all 4 following formats:
FPDFBitmap_Gray, FPDFBitmap_BGR, FPDFBitmap_BGRx, FPDFBitmap_BGRA. But
BitmapSaver::WriteBitmapToPng() is only able to handle 3 of them.
This CL adds the handling for FPDFBitmap_BGR in WriteBitmapToPng() so
that we can compare bitmap results for all possible formats from
FPDFViewEmbedderTest visually.
Change-Id: I2037598ff1efa01eb6dd3b373f4a67a845a36f42
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/66970
Commit-Queue: Hui Yingst <nigi@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
diff --git a/testing/utils/bitmap_saver.cpp b/testing/utils/bitmap_saver.cpp
index 524a9f6..bfc029f 100644
--- a/testing/utils/bitmap_saver.cpp
+++ b/testing/utils/bitmap_saver.cpp
@@ -27,8 +27,11 @@
pdfium::base::ValueOrDieForType<size_t>(size));
std::vector<uint8_t> png;
- if (FPDFBitmap_GetFormat(bitmap) == FPDFBitmap_Gray) {
+ int format = FPDFBitmap_GetFormat(bitmap);
+ if (format == FPDFBitmap_Gray) {
png = image_diff_png::EncodeGrayPNG(input, width, height, stride);
+ } else if (format == FPDFBitmap_BGR) {
+ png = image_diff_png::EncodeBGRPNG(input, width, height, stride);
} else {
png = image_diff_png::EncodeBGRAPNG(input, width, height, stride,
/*discard_transparency=*/false);