Remove PDF JPEG shortcut, since it fails on grayscale JPEGs.
BUG=436079 Review URL: https://codereview.chromium.org/767343002
This commit is contained in:
parent
c6b8b02882
commit
d476a176b7
25
gm/grayscalejpg.cpp
Normal file
25
gm/grayscalejpg.cpp
Normal file
@ -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);
|
||||
}
|
||||
}
|
@ -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',
|
||||
|
BIN
resources/grayscale.jpg
Normal file
BIN
resources/grayscale.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 770 B |
@ -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);
|
||||
}
|
||||
|
@ -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.
|
||||
|
Loading…
Reference in New Issue
Block a user