diff options
-rw-r--r-- | gm/grayscalejpg.cpp | 25 | ||||
-rw-r--r-- | gyp/gmslides.gypi | 1 | ||||
-rw-r--r-- | resources/grayscale.jpg | bin | 0 -> 770 bytes | |||
-rw-r--r-- | src/pdf/SkPDFImage.cpp | 6 | ||||
-rw-r--r-- | tests/PDFJpegEmbedTest.cpp | 3 |
5 files changed, 33 insertions, 2 deletions
diff --git a/gm/grayscalejpg.cpp b/gm/grayscalejpg.cpp new file mode 100644 index 0000000000..0c617bf2eb --- /dev/null +++ b/gm/grayscalejpg.cpp @@ -0,0 +1,25 @@ +/* + * Copyright 2014 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#include "Resources.h" +#include "SkCanvas.h" +#include "gm.h" + +/* + * Test decoding grayscale JPEG + * http://crbug.com/436079 + */ +DEF_SIMPLE_GM(grayscalejpg, canvas, 128, 128) { + const char kResource[] = "grayscale.jpg"; + SkBitmap bitmap; + if (GetResourceAsBitmap(kResource, &bitmap)) { + canvas->drawBitmap(bitmap, 0.0f, 0.0f); + } else { + SkDebugf("\nCould not decode file '%s'. Did you forget" + " to set the resourcePath?\n", kResource); + } +} diff --git a/gyp/gmslides.gypi b/gyp/gmslides.gypi index f1ab2b74a5..5e1ae47fd0 100644 --- a/gyp/gmslides.gypi +++ b/gyp/gmslides.gypi @@ -99,6 +99,7 @@ '../gm/gradientDirtyLaundry.cpp', '../gm/gradient_matrix.cpp', '../gm/gradtext.cpp', + '../gm/grayscalejpg.cpp', '../gm/hairlines.cpp', '../gm/hairmodes.cpp', '../gm/hittestpath.cpp', diff --git a/resources/grayscale.jpg b/resources/grayscale.jpg Binary files differnew file mode 100644 index 0000000000..6c6ae32c91 --- /dev/null +++ b/resources/grayscale.jpg diff --git a/src/pdf/SkPDFImage.cpp b/src/pdf/SkPDFImage.cpp index 0c9b7417a1..122d2f2148 100644 --- a/src/pdf/SkPDFImage.cpp +++ b/src/pdf/SkPDFImage.cpp @@ -629,6 +629,7 @@ bool SkPDFImage::populate(SkPDFCatalog* catalog) { return true; } +#if 0 // reenable when we can figure out the JPEG colorspace namespace { /** * This PDFObject assumes that its constructor was handed @@ -657,7 +658,7 @@ public: "/Subtype /Image\n" "/Width %d\n" "/Height %d\n" - "/ColorSpace /DeviceRGB\n" + "/ColorSpace /DeviceRGB\n" // or DeviceGray "/BitsPerComponent 8\n" "/Filter /DCTDecode\n" "/ColorTransform 0\n" @@ -702,11 +703,13 @@ static bool is_jfif_jpeg(SkData* data) { sizeof(bytesSixToTen)))); } } // namespace +#endif SkPDFObject* SkPDFCreateImageObject( const SkBitmap& bitmap, const SkIRect& subset, SkPicture::EncodeBitmap encoder) { +#if 0 // reenable when we can figure out the JPEG colorspace if (SkIRect::MakeWH(bitmap.width(), bitmap.height()) == subset) { SkAutoTUnref<SkData> encodedData(ref_encoded_data(bitmap)); if (is_jfif_jpeg(encodedData)) { @@ -714,5 +717,6 @@ SkPDFObject* SkPDFCreateImageObject( (encodedData, bitmap.width(), bitmap.height())); } } +#endif return SkPDFImage::CreateImage(bitmap, subset, encoder); } diff --git a/tests/PDFJpegEmbedTest.cpp b/tests/PDFJpegEmbedTest.cpp index c1d0ea8452..422b59a18f 100644 --- a/tests/PDFJpegEmbedTest.cpp +++ b/tests/PDFJpegEmbedTest.cpp @@ -84,7 +84,8 @@ DEF_TEST(PDFJpegEmbedTest, r) { SkASSERT(pdfData); pdf.reset(); - REPORTER_ASSERT(r, is_subset_of(mandrillData, pdfData)); + // Test disabled, waiting on resolution to http://skbug.com/3180 + // REPORTER_ASSERT(r, is_subset_of(mandrillData, pdfData)); // This JPEG uses a nonstandard colorspace - it can not be // embedded into the PDF directly. |