Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2822)

Side by Side Diff: base/gfx/png_encoder.cc

Issue 18347: Add a PNGEncoder helper function that takes an SkBitmap, (Closed)
Patch Set: Test2 Created 11 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « base/gfx/png_encoder.h ('k') | chrome/browser/fav_icon_helper.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/basictypes.h" 5 #include "base/basictypes.h"
6 #include "base/gfx/png_encoder.h" 6 #include "base/gfx/png_encoder.h"
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "skia/include/SkBitmap.h"
8 9
9 extern "C" { 10 extern "C" {
10 #include "png.h" 11 #include "png.h"
11 } 12 }
12 13
13 namespace { 14 namespace {
14 15
15 // Converts BGRA->RGBA and RGBA->BGRA. 16 // Converts BGRA->RGBA and RGBA->BGRA.
16 void ConvertBetweenBGRAandRGBA(const unsigned char* input, int pixel_width, 17 void ConvertBetweenBGRAandRGBA(const unsigned char* input, int pixel_width,
17 unsigned char* output) { 18 unsigned char* output) {
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
184 converter(&input[y * row_byte_width], w, row); 185 converter(&input[y * row_byte_width], w, row);
185 png_write_row(png_ptr, row); 186 png_write_row(png_ptr, row);
186 } 187 }
187 delete[] row; 188 delete[] row;
188 } 189 }
189 190
190 png_write_end(png_ptr, info_ptr); 191 png_write_end(png_ptr, info_ptr);
191 return true; 192 return true;
192 } 193 }
193 194
195 // static
196 bool PNGEncoder::EncodeBGRASkBitmap(const SkBitmap& input,
197 bool discard_transparency,
198 std::vector<unsigned char>* output) {
199 SkAutoLockPixels input_lock(input);
200 DCHECK_EQ(input.bytesPerPixel(), 4);
201 return Encode(static_cast<unsigned char*>(input.getPixels()),
202 PNGEncoder::FORMAT_BGRA, input.width(), input.height(),
203 input.rowBytes(), discard_transparency, output);
204 }
205
OLDNEW
« no previous file with comments | « base/gfx/png_encoder.h ('k') | chrome/browser/fav_icon_helper.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698