Chromium Code Reviews| Index: src/pdf/SkPDFImage.h |
| diff --git a/src/pdf/SkPDFImage.h b/src/pdf/SkPDFImage.h |
| index 31f894086ee3949e20e952d205ed818ac3b01f7d..9d7080af4a1d5c263209dce1a4a9ef66e5abc464 100644 |
| --- a/src/pdf/SkPDFImage.h |
| +++ b/src/pdf/SkPDFImage.h |
| @@ -11,7 +11,7 @@ |
| #define SkPDFImage_DEFINED |
| #include "SkPDFDevice.h" |
| -#include "SkPDFImageStream.h" |
| +#include "SkPDFStream.h" |
| #include "SkPDFTypes.h" |
| #include "SkRefCnt.h" |
| @@ -27,7 +27,7 @@ struct SkIRect; |
| // We could play the same trick here as is done in SkPDFGraphicState, storing |
| // a copy of the Bitmap object (not the pixels), the pixel generation number, |
| // and settings used from the paint to canonicalize image objects. |
| -class SkPDFImage : public SkPDFImageStream { |
| +class SkPDFImage : public SkPDFStream { |
| public: |
| /** Create a new Image XObject to represent the passed bitmap. |
| * @param bitmap The image to encode. |
| @@ -48,24 +48,58 @@ public: |
| */ |
| SkPDFImage* addSMask(SkPDFImage* mask); |
| + bool isEmpty() { |
| + return fSrcRect.isEmpty(); |
| + } |
| + |
| // The SkPDFObject interface. |
| virtual void getResources(const SkTSet<SkPDFObject*>& knownResourceObjects, |
| SkTSet<SkPDFObject*>* newResourceObjects); |
| private: |
| + SkBitmap fBitmap; |
| + SkIRect fSrcRect; |
| + EncodeToDCTStream fEncoder; |
| + bool fStreamValid; |
| + |
| SkTDArray<SkPDFObject*> fResources; |
| /** Create a PDF image XObject. Entries for the image properties are |
| * automatically added to the stream dictionary. |
| - * @param imageData The final raw bits representing the image. |
| - * @param bitmap The image parameters to use (Config, etc). |
| + * @param stream The image stream. May be NULL. Otherwise, this |
| + * (instead of the input bitmap) will be used as the |
| + * PDF's content stream, possibly with encoding. |
| + * @param bitmap The image. If a stream is not given, its color data |
| + * will be used as the image. If a stream is given, this |
| + * is used for configuration only. |
| + * @param isAlpha Whether or not this is the alpha of an image. |
| + * WARNING: a stream MUST be given if this is true. |
| * @param srcRect The clipping applied to bitmap before generating |
| * imageData. |
| - * @param alpha Is this the alpha channel of the bitmap. |
| - * @param paint Used to calculate alpha, masks, etc. |
| + * @param encoder A function used to encode the bitmap for compression. |
| + * May be NULL. |
| + */ |
| + SkPDFImage(SkStream* stream, const SkBitmap& bitmap, bool isAlpha, |
| + const SkIRect& srcRect, EncodeToDCTStream encoder); |
| + |
| + /** Copy constructor, used to generate substitutes. |
| + * @param image The SkPDFImage to copy. |
| */ |
| - SkPDFImage(SkStream* imageData, const SkBitmap& bitmap, |
| - const SkIRect& srcRect, bool alpha, EncodeToDCTStream encoder); |
| + SkPDFImage(SkPDFImage& pdfImage); |
| + |
| + /** Initialize the image XObject parameters based on fBitmap and |
| + * fSrcRect, which MUST have been initialized before calling this. |
| + * Image data is not touched. |
| + * @param isAlpha Whether or not this image is the alpha channel |
| + * (SMask) for another image XObject. |
| + */ |
| + void initImageParams(bool isAlpha); |
|
vandebo (ex-Chrome)
2013/08/23 15:50:19
Remove.
ducky
2013/08/23 17:59:50
Oops. Not sure how that got left in there...
On 2
|
| + |
| + // Populate the stream dictionary. This method returns false if |
| + // fSubstitute should be used. |
| + virtual bool populate(SkPDFCatalog* catalog); |
| + |
| + typedef SkPDFStream INHERITED; |
| }; |
| #endif |