diff options
author | 2015-03-16 11:55:18 -0700 | |
---|---|---|
committer | 2015-03-16 11:55:18 -0700 | |
commit | 741143878b23d22cd9cb7b9cba8055179115ce17 (patch) | |
tree | fc813d3048f08e1e641fac2e2552971acbc63db8 /dm | |
parent | 354eba5cb61801130a84378356434d3cc0a4b71a (diff) |
Revert "Revert of fix for invalid for loop syntax broke build (patchset #1 id:1 of https://codereview.chromium.org/1007373003/)"
This reverts commit d18475854ce232de71c5463e0654f459d4abfd43.
Revert "Revert "Implementation of image decoding for bmp files, in accordance with the new API.""
This reverts commit dfdec78a5d02e8690998741a9fe5b71a08ca3232.
BUG=skia:
TBR=
Review URL: https://codereview.chromium.org/1016443003
Diffstat (limited to 'dm')
-rw-r--r-- | dm/DMSrcSink.cpp | 28 |
1 files changed, 20 insertions, 8 deletions
diff --git a/dm/DMSrcSink.cpp b/dm/DMSrcSink.cpp index 91f4e238c2..6f6664f27c 100644 --- a/dm/DMSrcSink.cpp +++ b/dm/DMSrcSink.cpp @@ -141,15 +141,27 @@ Error ImageSrc::draw(SkCanvas* canvas) const { SkISize ImageSrc::size() const { SkAutoTUnref<SkData> encoded(SkData::NewFromFileName(fPath.c_str())); - SkBitmap bitmap; - if (!encoded || !SkImageDecoder::DecodeMemory(encoded->data(), - encoded->size(), - &bitmap, - kUnknown_SkColorType, - SkImageDecoder::kDecodeBounds_Mode)) { - return SkISize::Make(0,0); + if (FLAGS_codec) { + SkAutoTDelete<SkCodec> codec(SkCodec::NewFromData(encoded)); + if (!codec) { + return SkISize::Make(0,0); + } + SkImageInfo info; + if (!codec->getInfo(&info)) { + return SkISize::Make(0,0); + } + return info.dimensions(); + } else { + SkBitmap bitmap; + if (!encoded || !SkImageDecoder::DecodeMemory(encoded->data(), + encoded->size(), + &bitmap, + kUnknown_SkColorType, + SkImageDecoder::kDecodeBounds_Mode)) { + return SkISize::Make(0,0); + } + return bitmap.dimensions(); } - return bitmap.dimensions(); } Name ImageSrc::name() const { |