MCPcopy Create free account
hub / github.com/YACReader/yacreader / getPage

Method getPage

common/pdf_comic.cpp:91–131  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

89}
90
91QImage PdfiumComic::getPage(const int page)
92{
93 if (!doc) {
94 return QImage();
95 }
96
97 QImage image;
98 FPDF_PAGE pdfpage;
99 FPDF_BITMAP bitmap;
100
101 QMutexLocker locker(&pdfmutex);
102 pdfpage = FPDF_LoadPage(doc, page);
103
104 if (!pdfpage) {
105 // TODO report error
106 qDebug() << FPDF_GetLastError();
107 return QImage();
108 }
109
110 const QSize pagesize = YACReaderPdfRender::renderSizeFromPagePoints(QSizeF(FPDF_GetPageWidth(pdfpage),
111 FPDF_GetPageHeight(pdfpage)));
112 if (!pagesize.isValid()) {
113 FPDF_ClosePage(pdfpage);
114 return QImage();
115 }
116
117 image = QImage(pagesize, QImage::Format_ARGB32); // QImage::Format_RGBX8888);
118 if (image.isNull()) {
119 // TODO report OOM error
120 qDebug() << "Image too large, OOM";
121 return image;
122 }
123 image.fill(0xFFFFFFFF);
124
125 bitmap = FPDFBitmap_CreateEx(image.width(), image.height(), FPDFBitmap_BGRA, image.scanLine(0), image.bytesPerLine());
126 // TODO: make render flags costumizable
127 FPDF_RenderPageBitmap(bitmap, pdfpage, 0, 0, image.width(), image.height(), 0, (FPDF_LCD_TEXT));
128 FPDFBitmap_Destroy(bitmap);
129 FPDF_ClosePage(pdfpage);
130 return image;
131}
132#endif // USE_PDFIUM

Callers 2

comic.cppFile · 0.80
extractMethod · 0.80

Calls 2

renderSizeFromPagePointsFunction · 0.85
isValidMethod · 0.45

Tested by

no test coverage detected