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. |
rvargas (doing something else)
2011/07/16 01:37:35
The comments are already on the header. (and below
|
+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 |