Fixed compilation problems in OSX after pdf refactoring merge.

This commit is contained in:
Luis Ángel San Martín 2017-01-13 18:59:26 +01:00
parent b1b91d5013
commit cfb0330026
2 changed files with 18 additions and 14 deletions

View File

@ -14,7 +14,7 @@ class MacOSXPDFComic
void closeComic(); void closeComic();
unsigned int numPages(); unsigned int numPages();
QImage getPage(const int page); QImage getPage(const int page);
void releaseLastPageData(); //void releaseLastPageData();
private: private:
void * document; void * document;

View File

@ -64,12 +64,15 @@ QImage MacOSXPDFComic::getPage(const int pageNum)
pageRect.origin = CGPointZero; pageRect.origin = CGPointZero;
CGColorSpaceRef genericColorSpace = CGColorSpaceCreateDeviceRGB(); CGColorSpaceRef genericColorSpace = CGColorSpaceCreateDeviceRGB();
CGContextRef bitmapContext = CGBitmapContextCreate(NULL,
QImage renderImage = QImage(pageRect.size.width, pageRect.size.height, QImage::Format_ARGB32_Premultiplied);
CGContextRef bitmapContext = CGBitmapContextCreate(renderImage.scanLine(0),
pageRect.size.width, pageRect.size.width,
pageRect.size.height, pageRect.size.height,
8, 0, 8,renderImage.bytesPerLine(),
genericColorSpace, genericColorSpace,
kCGImageAlphaPremultipliedFirst | kCGBitmapByteOrder32Little kCGImageAlphaPremultipliedFirst | kCGBitmapByteOrder32Little //may need to be changed to kCGBitmapByteOrder32Big
); );
CGContextSetInterpolationQuality(bitmapContext, kCGInterpolationHigh); CGContextSetInterpolationQuality(bitmapContext, kCGInterpolationHigh);
@ -89,13 +92,13 @@ QImage MacOSXPDFComic::getPage(const int pageNum)
CGContextDrawPDFPage(bitmapContext, page); CGContextDrawPDFPage(bitmapContext, page);
CGImageRef image = CGBitmapContextCreateImage(bitmapContext); //CGImageRef image = CGBitmapContextCreateImage(bitmapContext);
QImage qtImage; //QImage qtImage;
CFDataRef dataRef = CGDataProviderCopyData(CGImageGetDataProvider(image)); //CFDataRef dataRef = CGDataProviderCopyData(CGImageGetDataProvider(image));
lastPageData = (void *)dataRef; /*lastPageData = (void *)dataRef;
if(!lastPageData) if(!lastPageData)
{ {
@ -108,19 +111,20 @@ QImage MacOSXPDFComic::getPage(const int pageNum)
const uchar *bytes = (const uchar *)CFDataGetBytePtr(dataRef); const uchar *bytes = (const uchar *)CFDataGetBytePtr(dataRef);
qtImage = QImage(bytes, pageRect.size.width, pageRect.size.height, QImage::Format_ARGB32, &releaseLastPageData()); qtImage = QImage(bytes, pageRect.size.width, pageRect.size.height, QImage::Format_ARGB32);
*/
CGImageRelease(image); //CGImageRelease(image);
//CFRelease(dataRef); //CFRelease(dataRef);
CGContextRelease(bitmapContext); CGContextRelease(bitmapContext);
//CGPDFPageRelease(page); //CGPDFPageRelease(page);
CGColorSpaceRelease(genericColorSpace); CGColorSpaceRelease(genericColorSpace);
return qtImage; //return qtImage;
return renderImage;
} }
void MacOSXPDFComic::releaseLastPageData() /*void MacOSXPDFComic::releaseLastPageData()
{ {
CFRelease((CFDataRef)lastPageData); CFRelease((CFDataRef)lastPageData);
} }*/