diff options
author | Tom Sepez <tsepez@chromium.org> | 2015-02-05 15:06:01 -0800 |
---|---|---|
committer | Tom Sepez <tsepez@chromium.org> | 2015-02-05 15:06:01 -0800 |
commit | af18cb3e7c89d4b6b93765d0f3e5ae6e2e0d8163 (patch) | |
tree | b60ec53ec26aa55221a81330322938eec8bc3197 /samples/image_diff_png.h | |
parent | 93daa3c8942b837a948d4803145a07e2fd9c084b (diff) | |
download | pdfium-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.h | 34 |
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_ |