| Index: src/image/SkImage_Codec.cpp
|
| diff --git a/src/image/SkImage_Codec.cpp b/src/image/SkImage_Codec.cpp
|
| index 9d81dc943a5fd005387a55ca0428c6235d1952f0..77ce03779a44b83e753d9c6b06985862407c73e6 100644
|
| --- a/src/image/SkImage_Codec.cpp
|
| +++ b/src/image/SkImage_Codec.cpp
|
| @@ -64,3 +64,40 @@ SkImage* SkImage::NewEncodedData(SkData* data) {
|
|
|
| return SkNEW_ARGS(SkImage_Codec, (data, bitmap.width(), bitmap.height()));
|
| }
|
| +
|
| +///////////////////////////////////////////////////////////////////////////////
|
| +
|
| +// FIXME: Temporarily move this here so chromium can still build until we truly
|
| +// fix the core/images dependency issue (https://code.google.com/p/skia/issues/detail?id=1275)
|
| +#include "SkImage.h"
|
| +#include "../images/SkImageEncoder.h"
|
| +
|
| +static const SkImage_Base* asIB(const SkImage* image) {
|
| + return static_cast<const SkImage_Base*>(image);
|
| +}
|
| +
|
| +static const struct {
|
| + SkImageEncoder::Type fIE;
|
| + SkImage::EncodeType fET;
|
| +} gTable[] = {
|
| + { SkImageEncoder::kBMP_Type, SkImage::kBMP_EncodeType },
|
| + { SkImageEncoder::kGIF_Type, SkImage::kGIF_EncodeType },
|
| + { SkImageEncoder::kICO_Type, SkImage::kICO_EncodeType },
|
| + { SkImageEncoder::kJPEG_Type, SkImage::kJPEG_EncodeType },
|
| + { SkImageEncoder::kPNG_Type, SkImage::kPNG_EncodeType },
|
| + { SkImageEncoder::kWBMP_Type, SkImage::kWBMP_EncodeType },
|
| + { SkImageEncoder::kWEBP_Type, SkImage::kWEBP_EncodeType },
|
| +};
|
| +
|
| +SkData* SkImage::encode(EncodeType et, int quality) const {
|
| + for (size_t i = 0; i < SK_ARRAY_COUNT(gTable); ++i) {
|
| + if (gTable[i].fET == et) {
|
| + SkBitmap bm;
|
| + if (asIB(this)->getROPixels(&bm)) {
|
| + return SkImageEncoder::EncodeData(bm, gTable[i].fIE, quality);
|
| + }
|
| + break;
|
| + }
|
| + }
|
| + return NULL;
|
| +}
|
|
|