// Copyright (c) 2011 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 WEBKIT_SUPPORT_WEBKIT_SUPPORT_GFX_H_ #define WEBKIT_SUPPORT_WEBKIT_SUPPORT_GFX_H_ #include #include #include "ui/gfx/codec/png_codec.h" #include "ui/gfx/size.h" namespace webkit_support { // Decode a PNG into an RGBA pixel array. inline bool DecodePNG(const unsigned char* input, size_t input_size, std::vector* output, int* width, int* height) { return gfx::PNGCodec::Decode(input, input_size, gfx::PNGCodec::FORMAT_RGBA, output, width, height); } // Encode an RGBA pixel array into a PNG. inline bool EncodeRGBAPNG(const unsigned char* input, int width, int height, int row_byte_width, std::vector* output) { return gfx::PNGCodec::Encode(input, gfx::PNGCodec::FORMAT_RGBA, gfx::Size(width, height), row_byte_width, false, std::vector(), output); } // Encode an BGRA pixel array into a PNG. inline bool EncodeBGRAPNG(const unsigned char* input, int width, int height, int row_byte_width, bool discard_transparency, std::vector* output) { return gfx::PNGCodec::Encode(input, gfx::PNGCodec::FORMAT_BGRA, gfx::Size(width, height), row_byte_width, discard_transparency, std::vector(), output); } inline bool EncodeBGRAPNGWithChecksum(const unsigned char* input, int width, int height, int row_byte_width, bool discard_transparency, const std::string& checksum, std::vector* output) { std::vector comments; comments.push_back(gfx::PNGCodec::Comment("checksum", checksum)); return gfx::PNGCodec::Encode(input, gfx::PNGCodec::FORMAT_BGRA, gfx::Size(width, height), row_byte_width, discard_transparency, comments, output); } } // namespace webkit_support #endif // WEBKIT_SUPPORT_WEBKIT_SUPPORT_GFX_H_