diff options
author | Henrique Nakashima <hnakashima@chromium.org> | 2018-08-16 16:41:42 +0000 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2018-08-16 16:41:42 +0000 |
commit | f956badf3dd2c7eedba47dfcb787d6e6dfe92cf7 (patch) | |
tree | e14a2baf941514395ea29922eb9960a1a20dfe9d /testing/embedder_test.cpp | |
parent | 048d7f7c1e0c6c42679a5646ae9db5b7d98ed755 (diff) | |
download | pdfium-f956badf3dd2c7eedba47dfcb787d6e6dfe92cf7.tar.xz |
Add a way to save a barcode generated bitmap to a .png.
This is useful for debugging and validation purposes. The hashes that
are in BarcodeTest are not necessarily for valid outputs.
This CL refactors the code in embedder_test.png that already does this,
moving it to testing/utils where unit tests can access it too.
Bug: pdfium:1135
Change-Id: I6f1d70a4e133f8f04dbe52646087f99c448e95f8
Reviewed-on: https://pdfium-review.googlesource.com/40152
Commit-Queue: Henrique Nakashima <hnakashima@chromium.org>
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Diffstat (limited to 'testing/embedder_test.cpp')
-rw-r--r-- | testing/embedder_test.cpp | 31 |
1 files changed, 2 insertions, 29 deletions
diff --git a/testing/embedder_test.cpp b/testing/embedder_test.cpp index 3f953d22df..215009ceac 100644 --- a/testing/embedder_test.cpp +++ b/testing/embedder_test.cpp @@ -6,13 +6,11 @@ #include <limits.h> -#include <fstream> #include <list> #include <map> #include <memory> #include <string> #include <utility> -#include <vector> #include "core/fdrm/crypto/fx_crypt.h" #include "public/cpp/fpdf_scopers.h" @@ -21,8 +19,8 @@ #include "public/fpdf_text.h" #include "public/fpdfview.h" #include "testing/gmock/include/gmock/gmock.h" -#include "testing/image_diff/image_diff_png.h" #include "testing/test_support.h" +#include "testing/utils/bitmap_saver.h" #include "testing/utils/path_service.h" #include "third_party/base/logging.h" #include "third_party/base/ptr_util.h" @@ -494,32 +492,7 @@ std::string EmbedderTest::HashBitmap(FPDF_BITMAP bitmap) { // static void EmbedderTest::WriteBitmapToPng(FPDF_BITMAP bitmap, const std::string& filename) { - const int stride = FPDFBitmap_GetStride(bitmap); - const int width = FPDFBitmap_GetWidth(bitmap); - const int height = FPDFBitmap_GetHeight(bitmap); - const auto* buffer = - static_cast<const unsigned char*>(FPDFBitmap_GetBuffer(bitmap)); - - std::vector<unsigned char> png_encoding; - bool encoded; - if (FPDFBitmap_GetFormat(bitmap) == FPDFBitmap_Gray) { - encoded = image_diff_png::EncodeGrayPNG(buffer, width, height, stride, - &png_encoding); - } else { - encoded = image_diff_png::EncodeBGRAPNG(buffer, width, height, stride, - /*discard_transparency=*/false, - &png_encoding); - } - - ASSERT_TRUE(encoded); - ASSERT_LT(filename.size(), 256u); - - std::ofstream png_file; - png_file.open(filename, std::ios_base::out | std::ios_base::binary); - png_file.write(reinterpret_cast<char*>(&png_encoding.front()), - png_encoding.size()); - ASSERT_TRUE(png_file.good()); - png_file.close(); + BitmapSaver::WriteBitmapToPng(bitmap, filename); } #endif |