| Index: webkit/support/webkit_support_gfx.cc
|
| ===================================================================
|
| --- webkit/support/webkit_support_gfx.cc (revision 0)
|
| +++ webkit/support/webkit_support_gfx.cc (revision 0)
|
| @@ -0,0 +1,57 @@
|
| +// 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.
|
| +
|
| +#include "webkit/support/webkit_support_gfx.h"
|
| +
|
| +#include "ui/gfx/codec/png_codec.h"
|
| +#include "ui/gfx/size.h"
|
| +
|
| +namespace webkit_support {
|
| +
|
| +// 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) {
|
| + return gfx::PNGCodec::Decode(input, input_size, gfx::PNGCodec::FORMAT_RGBA,
|
| + output, width, 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) {
|
| + return gfx::PNGCodec::Encode(input, gfx::PNGCodec::FORMAT_RGBA,
|
| + gfx::Size(width, height), row_byte_width, false,
|
| + std::vector<gfx::PNGCodec::Comment>(), 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) {
|
| + return gfx::PNGCodec::Encode(input, gfx::PNGCodec::FORMAT_BGRA,
|
| + gfx::Size(width, height), row_byte_width, discard_transparency,
|
| + std::vector<gfx::PNGCodec::Comment>(), output);
|
| +}
|
| +
|
| +bool EncodeBGRAPNGWithChecksum(const unsigned char* input,
|
| + int width,
|
| + int height,
|
| + int row_byte_width,
|
| + bool discard_transparency,
|
| + const std::string& checksum,
|
| + std::vector<unsigned char>* output) {
|
| + std::vector<gfx::PNGCodec::Comment> 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
|
|
|