summaryrefslogtreecommitdiff
path: root/samples/image_diff_png.h
diff options
context:
space:
mode:
authorTom Sepez <tsepez@chromium.org>2015-02-05 15:06:01 -0800
committerTom Sepez <tsepez@chromium.org>2015-02-05 15:06:01 -0800
commitaf18cb3e7c89d4b6b93765d0f3e5ae6e2e0d8163 (patch)
treeb60ec53ec26aa55221a81330322938eec8bc3197 /samples/image_diff_png.h
parent93daa3c8942b837a948d4803145a07e2fd9c084b (diff)
downloadpdfium-af18cb3e7c89d4b6b93765d0f3e5ae6e2e0d8163.tar.xz
XFA: Support PNG format in pdfium_test and add image diffing
Lays the groundwork for pixel-diffing tests in pdfium. This is a port of chromium's tools/image_diff/image_diff_png.cc onto the top of the fxcodec-provided version of libpng. pdfium_test is modified to support the new format, and the tools/image_diff.cc image comparison utility is provided, stripped of its base/ dependencies. Unfortunately, this can't be back-ported to origin/main, since the underlying PNG support isn't present inside pdfium. BUG=https://code.google.com/p/pdfium/issues/detail?id=62 R=thestig@chromium.org Review URL: https://codereview.chromium.org/870203005
Diffstat (limited to 'samples/image_diff_png.h')
-rw-r--r--samples/image_diff_png.h34
1 files changed, 34 insertions, 0 deletions
diff --git a/samples/image_diff_png.h b/samples/image_diff_png.h
new file mode 100644
index 0000000000..ea77e9a98f
--- /dev/null
+++ b/samples/image_diff_png.h
@@ -0,0 +1,34 @@
+// Copyright 2013 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef TOOLS_IMAGEDIFF_IMAGE_DIFF_PNG_H_
+#define TOOLS_IMAGEDIFF_IMAGE_DIFF_PNG_H_
+
+#include <vector>
+
+namespace image_diff_png {
+
+// Decode a PNG into an RGBA pixel array.
+bool DecodePNG(const unsigned char* input, size_t input_size,
+ std::vector<unsigned char>* output,
+ int* width, int* height);
+
+// Encode an RGBA pixel array into a PNG.
+bool EncodeRGBAPNG(const unsigned char* input,
+ int width,
+ int height,
+ int row_byte_width,
+ std::vector<unsigned char>* output);
+
+// Encode an BGRA pixel array into a PNG.
+bool EncodeBGRAPNG(const unsigned char* input,
+ int width,
+ int height,
+ int row_byte_width,
+ bool discard_transparency,
+ std::vector<unsigned char>* output);
+
+} // namespace image_diff_png
+
+#endif // TOOLS_IMAGEDIFF_IMAGE_DIFF_PNG_H_