diff options
author | pinkerton@chromium.org <pinkerton@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-08-02 13:19:12 +0000 |
---|---|---|
committer | pinkerton@chromium.org <pinkerton@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-08-02 13:19:12 +0000 |
commit | 4232c968cd67dcf8e1bf2a4f8e46850e40157d5d (patch) | |
tree | 5dba1d21d369f3f0c38566735927618a609f1372 /ui | |
parent | 1d7cd66f3fb753a2ac1b3d00dab13fff28146ccd (diff) | |
download | chromium_src-4232c968cd67dcf8e1bf2a4f8e46850e40157d5d.zip chromium_src-4232c968cd67dcf8e1bf2a4f8e46850e40157d5d.tar.gz chromium_src-4232c968cd67dcf8e1bf2a4f8e46850e40157d5d.tar.bz2 |
Change TopSites and History to use gfx::Image instead of SkBitmap in their
public APIs. Move JPEG encoding into image utils.
BUG=none
TEST=unit tests all pass
Review URL: http://codereview.chromium.org/7461118
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@95075 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui')
-rw-r--r-- | ui/gfx/image/image_util.cc | 16 | ||||
-rw-r--r-- | ui/gfx/image/image_util.h | 5 |
2 files changed, 21 insertions, 0 deletions
diff --git a/ui/gfx/image/image_util.cc b/ui/gfx/image/image_util.cc index eaa1958..a9f6005 100644 --- a/ui/gfx/image/image_util.cc +++ b/ui/gfx/image/image_util.cc @@ -6,6 +6,7 @@ #include "base/memory/scoped_ptr.h" #include "third_party/skia/include/core/SkBitmap.h" +#include "ui/gfx/codec/jpeg_codec.h" #include "ui/gfx/codec/png_codec.h" #include "ui/gfx/image/image.h" @@ -25,4 +26,19 @@ bool PNGEncodedDataFromImage(const Image& image, return gfx::PNGCodec::EncodeBGRASkBitmap(bitmap, false, dst); } +bool JPEGEncodedDataFromImage(const Image& image, + std::vector<unsigned char>* dst) { + const SkBitmap& bitmap = image; + SkAutoLockPixels bitmap_lock(bitmap); + // Use 90 quality (out of 100) which is pretty high, because + // we're very sensitive to artifacts for these small sized, + // highly detailed images. + return gfx::JPEGCodec::Encode( + reinterpret_cast<unsigned char*>(bitmap.getAddr32(0, 0)), + gfx::JPEGCodec::FORMAT_BGRA, bitmap.width(), + bitmap.height(), + static_cast<int>(bitmap.rowBytes()), 90, + dst); +} + } diff --git a/ui/gfx/image/image_util.h b/ui/gfx/image/image_util.h index a702dae..6e1d803 100644 --- a/ui/gfx/image/image_util.h +++ b/ui/gfx/image/image_util.h @@ -27,6 +27,11 @@ UI_API Image* ImageFromPNGEncodedData(const unsigned char* input, UI_API bool PNGEncodedDataFromImage(const Image& image, std::vector<unsigned char>* dst); +// Fills the |dst| vector with JPEG-encoded bytes based on the given Image. +// Returns true if the Image was encoded successfully. +UI_API bool JPEGEncodedDataFromImage(const Image& image, + std::vector<unsigned char>* dst); + } #endif // UI_GFX_IMAGE_IMAGE_UTIL_H_ |