// 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 <stdlib.h>  // for size_t.

#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_
