Index: src/codec/SkRawCodec.cpp |
diff --git a/src/codec/SkRawCodec.cpp b/src/codec/SkRawCodec.cpp |
index 762e82364cd3a6dd27e7c6534f69f0d40d6c8eb4..1247173b852c6a3bb03f8d89636b3f1233e5ecab 100644 |
--- a/src/codec/SkRawCodec.cpp |
+++ b/src/codec/SkRawCodec.cpp |
@@ -640,7 +640,11 @@ SkCodec* SkRawCodec::NewFromStream(SkStream* stream) { |
if (::piex::IsRaw(&piexStream)) { |
::piex::Error error = ::piex::GetPreviewImageData(&piexStream, &imageData); |
- if (error == ::piex::Error::kOk && imageData.preview.length > 0) { |
+ // PIEX can return JPEG compressed image or uncompressed RGB image. We only handle the JPEG |
scroggo
2016/04/13 12:20:23
I'm confused. What is the "uncompressed RGB image"
yujieqin
2016/04/13 13:11:29
There are two kind of thumbnails image can be embe
scroggo
2016/04/13 15:54:31
Ah, this probably is more obvious to someone who i
yujieqin
2016/04/14 07:54:59
Actually it is not only for "thumbnail". Theoretic
scroggo
2016/04/14 13:24:24
Ah, thanks for clarifying.
|
+ // compressed case for now. |
+ if (error == ::piex::Error::kOk && imageData.preview.length > 0 && |
+ imageData.preview.format == ::piex::Image::kJpegCompressed) |
+ { |
// transferBuffer() is destructive to the rawStream. Abandon the rawStream after this |
// function call. |
// FIXME: one may avoid the copy of memoryStream and use the buffered rawStream. |