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);