Chromium Code Reviews| Index: gm/filterbitmap.cpp |
| diff --git a/gm/filterbitmap.cpp b/gm/filterbitmap.cpp |
| index 5c63910a7842db484a3eed0595f4cb475613f0b8..23c78d0e402c09e49884e5febc9dc60ac282a87a 100644 |
| --- a/gm/filterbitmap.cpp |
| +++ b/gm/filterbitmap.cpp |
| @@ -8,8 +8,9 @@ |
| #include "gm.h" |
| #include "Resources.h" |
| +#include "SkData.h" |
| +#include "SkImage.h" |
| #include "SkGradientShader.h" |
| -#include "SkImageDecoder.h" |
| #include "SkStream.h" |
| #include "SkTypeface.h" |
| @@ -196,26 +197,20 @@ protected: |
| } |
| void makeBitmap() override { |
| - SkImageDecoder* codec = nullptr; |
| - SkString resourcePath = GetResourcePath(fFilename.c_str()); |
| - SkFILEStream stream(resourcePath.c_str()); |
| - if (stream.isValid()) { |
| - codec = SkImageDecoder::Factory(&stream); |
| - } |
| - if (codec) { |
| - stream.rewind(); |
| - codec->decode(&stream, &fBM, kN32_SkColorType, SkImageDecoder::kDecodePixels_Mode); |
| - delete codec; |
| - } else { |
| - fBM.allocN32Pixels(1, 1); |
| - *(fBM.getAddr32(0,0)) = 0xFF0000FF; // red == bad |
| - } |
| - fSize = fBM.height(); |
| - if (fConvertToG8) { |
| - SkBitmap tmp; |
| - fBM.copyTo(&tmp, kGray_8_SkColorType); |
| - fBM = tmp; |
| - } |
| + SkAutoTUnref<SkData> data(SkData::NewFromFileName( |
| + GetResourcePath(fFilename.c_str()).c_str())); |
| + SkAutoTDelete<SkImage> image(SkImage::NewFromEncoded(data)); |
| + if (!image || !image->asLegacyBitmap(&fBM, SkImage::kRW_LegacyBitmapMode)) { |
|
scroggo
2016/03/17 13:05:48
GetResourceAsBitmap? Same for a few more files?
msarett
2016/03/17 13:53:38
Done.
|
| + fBM.allocN32Pixels(1, 1); |
| + fBM.eraseARGB(255, 255, 0 , 0); // red == bad |
| + } |
| + fSize = fBM.height(); |
| + |
| + if (fConvertToG8) { |
| + SkBitmap tmp; |
| + fBM.copyTo(&tmp, kGray_8_SkColorType); |
| + fBM = tmp; |
| + } |
| } |
| private: |
| const bool fConvertToG8; |