MCPcopy Create free account
hub / github.com/Tencent/tgfx / EmitImageStream

Function EmitImageStream

src/pdf/PDFBitmap.cpp:42–71  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

40
41template <typename T>
42void EmitImageStream(PDFDocumentImpl* doc, PDFIndirectReference ref, T writeStream, ISize size,
43 PDFUnion&& colorSpace, PDFIndirectReference sMask, int length,
44 PDFStreamFormat format) {
45 auto pdfDict = PDFDictionary::Make("XObject");
46 pdfDict->insertName("Subtype", "Image");
47 pdfDict->insertInt("Width", size.width);
48 pdfDict->insertInt("Height", size.height);
49 pdfDict->insertUnion("ColorSpace", std::move(colorSpace));
50 if (sMask) {
51 pdfDict->insertRef("SMask", sMask);
52 }
53 pdfDict->insertInt("BitsPerComponent", 8);
54
55 switch (format) {
56 case PDFStreamFormat::DCT:
57 pdfDict->insertName("Filter", "DCTDecode");
58 break;
59 case PDFStreamFormat::Flate:
60 pdfDict->insertName("Filter", "FlateDecode");
61 break;
62 case PDFStreamFormat::Uncompressed:
63 break;
64 }
65
66 if (format == PDFStreamFormat::DCT) {
67 pdfDict->insertInt("ColorTransform", 0);
68 }
69 pdfDict->insertInt("Length", length);
70 doc->emitStream(*pdfDict, std::move(writeStream), ref);
71}
72
73void FillStream(WriteStream* out, char value, size_t n) {
74 char buffer[4096];

Callers 3

DoJpegFunction · 0.85
DoDeflatedAlphaFunction · 0.85
DoDeflatedImageFunction · 0.85

Calls 6

MakeFunction · 0.85
insertNameMethod · 0.80
insertIntMethod · 0.80
insertUnionMethod · 0.80
insertRefMethod · 0.80
emitStreamMethod · 0.80

Tested by

no test coverage detected