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

Unified Diff: ui/gfx/codec/png_codec.cc

Issue 1874403003: Tweak libpng encoding parameters to increase speed on very large images. Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Tweaks and improve perf tests. Created 4 years, 8 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 side-by-side diff with in-line comments
Download patch
Index: ui/gfx/codec/png_codec.cc
diff --git a/ui/gfx/codec/png_codec.cc b/ui/gfx/codec/png_codec.cc
index ac386ad91d0b656e146776c8077694c881719e99..5c0b68d7f163c70806ca162588aaba8b221fccf0 100644
--- a/ui/gfx/codec/png_codec.cc
+++ b/ui/gfx/codec/png_codec.cc
@@ -588,6 +588,8 @@ bool DoLibpngWrite(png_struct* png_ptr, png_info* info_ptr,
}
png_set_compression_level(png_ptr, compression_level);
+ if (compression_level <= Z_BEST_SPEED)
dcheng 2016/04/22 01:14:01 Alternatively, I could add another parameter to Do
+ png_set_filter(png_ptr, PNG_FILTER_TYPE_BASE, PNG_NO_FILTERS);
// Set our callback for libpng to give us the data.
png_set_write_fn(png_ptr, state, EncoderWriteCallback, FakeFlushCallback);
@@ -803,6 +805,14 @@ bool PNGCodec::FastEncodeBGRASkBitmap(const SkBitmap& input,
output);
}
+bool PNGCodec::NoCompressEncodeBGRASkBitmap(
+ const SkBitmap& input,
+ bool discard_transparency,
+ std::vector<unsigned char>* output) {
+ return InternalEncodeSkBitmap(input, discard_transparency, Z_NO_COMPRESSION,
+ output);
+}
+
PNGCodec::Comment::Comment(const std::string& k, const std::string& t)
: key(k), text(t) {
}

Powered by Google App Engine
This is Rietveld 408576698