diff options
Diffstat (limited to 'src/pdf/SkPDFBitmap.cpp')
-rw-r--r-- | src/pdf/SkPDFBitmap.cpp | 34 |
1 files changed, 11 insertions, 23 deletions
diff --git a/src/pdf/SkPDFBitmap.cpp b/src/pdf/SkPDFBitmap.cpp index 772745ca50..2d789d04d8 100644 --- a/src/pdf/SkPDFBitmap.cpp +++ b/src/pdf/SkPDFBitmap.cpp @@ -346,8 +346,7 @@ static void emit_image_xobject(SkWStream* stream, const SkImage* image, bool alpha, const sk_sp<SkPDFObject>& smask, - const SkPDFObjNumMap& objNumMap, - const SkPDFSubstituteMap& substitutes) { + const SkPDFObjNumMap& objNumMap) { SkBitmap bitmap; image_get_ro_pixels(image, &bitmap); // TODO(halcanary): test SkAutoLockPixels autoLockPixels(bitmap); // with malformed images. @@ -385,7 +384,7 @@ static void emit_image_xobject(SkWStream* stream, pdfDict.insertInt("BitsPerComponent", 8); pdfDict.insertName("Filter", "FlateDecode"); pdfDict.insertInt("Length", asset->getLength()); - pdfDict.emitObject(stream, objNumMap, substitutes); + pdfDict.emitObject(stream, objNumMap); pdf_stream_begin(stream); stream->writeStream(asset.get(), asset->getLength()); @@ -400,10 +399,9 @@ class PDFAlphaBitmap final : public SkPDFObject { public: PDFAlphaBitmap(sk_sp<SkImage> image) : fImage(std::move(image)) { SkASSERT(fImage); } void emitObject(SkWStream* stream, - const SkPDFObjNumMap& objNumMap, - const SkPDFSubstituteMap& subs) const override { + const SkPDFObjNumMap& objNumMap) const override { SkASSERT(fImage); - emit_image_xobject(stream, fImage.get(), true, nullptr, objNumMap, subs); + emit_image_xobject(stream, fImage.get(), true, nullptr, objNumMap); } void drop() override { fImage = nullptr; } @@ -419,19 +417,12 @@ namespace { class PDFDefaultBitmap final : public SkPDFObject { public: void emitObject(SkWStream* stream, - const SkPDFObjNumMap& objNumMap, - const SkPDFSubstituteMap& subs) const override { + const SkPDFObjNumMap& objNumMap) const override { SkASSERT(fImage); - emit_image_xobject(stream, fImage.get(), false, fSMask, objNumMap, subs); + emit_image_xobject(stream, fImage.get(), false, fSMask, objNumMap); } - void addResources(SkPDFObjNumMap* catalog, - const SkPDFSubstituteMap& subs) const override { - SkASSERT(fImage); - if (fSMask.get()) { - SkPDFObject* obj = subs.getSubstitute(fSMask.get()); - SkASSERT(obj); - catalog->addObjectRecursively(obj, subs); - } + void addResources(SkPDFObjNumMap* catalog) const override { + catalog->addObjectRecursively(fSMask.get()); } void drop() override { fImage = nullptr; fSMask = nullptr; } PDFDefaultBitmap(sk_sp<SkImage> image, sk_sp<SkPDFObject> smask) @@ -458,15 +449,12 @@ public: bool fIsYUV; PDFJpegBitmap(SkISize size, SkData* data, bool isYUV) : fSize(size), fData(SkRef(data)), fIsYUV(isYUV) { SkASSERT(data); } - void emitObject(SkWStream*, - const SkPDFObjNumMap&, - const SkPDFSubstituteMap&) const override; + void emitObject(SkWStream*, const SkPDFObjNumMap&) const override; void drop() override { fData = nullptr; } }; void PDFJpegBitmap::emitObject(SkWStream* stream, - const SkPDFObjNumMap& objNumMap, - const SkPDFSubstituteMap& substituteMap) const { + const SkPDFObjNumMap& objNumMap) const { SkASSERT(fData); SkPDFDict pdfDict("XObject"); pdfDict.insertName("Subtype", "Image"); @@ -481,7 +469,7 @@ void PDFJpegBitmap::emitObject(SkWStream* stream, pdfDict.insertName("Filter", "DCTDecode"); pdfDict.insertInt("ColorTransform", 0); pdfDict.insertInt("Length", SkToInt(fData->size())); - pdfDict.emitObject(stream, objNumMap, substituteMap); + pdfDict.emitObject(stream, objNumMap); pdf_stream_begin(stream); stream->write(fData->data(), fData->size()); pdf_stream_end(stream); |