diff options
Diffstat (limited to 'gm/filterbitmap.cpp')
-rw-r--r-- | gm/filterbitmap.cpp | 32 |
1 files changed, 11 insertions, 21 deletions
diff --git a/gm/filterbitmap.cpp b/gm/filterbitmap.cpp index 5c63910a78..51a8064d80 100644 --- a/gm/filterbitmap.cpp +++ b/gm/filterbitmap.cpp @@ -9,7 +9,6 @@ #include "Resources.h" #include "SkGradientShader.h" -#include "SkImageDecoder.h" #include "SkStream.h" #include "SkTypeface.h" @@ -196,26 +195,17 @@ 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; - } + if (!GetResourceAsBitmap(fFilename.c_str(), &fBM)) { + 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; |