Hello everyone,

Sorry about the double post, but the link to the images did not make it.

I have developed an application that converts a PDF to a bitmap image. The program creates an image in which all of the pages in the PDF are stacked - one on top of the other. But I have a problem. When the program is run on a PowerPC running Tiger, the quality is much worse than when I do the same thing from an Intel based machine running leopard. I think that maybe the Tiger api is not antialiasing, but I tried explicitly telling it to do so with no effect. The code is below:

NSRect viewBounds = [[pdfDoc pageAtIndex:0] boundsForBox:kPDFDisplayBoxMediaBox];
int height = (int)(viewBounds.size.height * 1.25) * [pdfDoc pageCount];
int pageHeight = (int)(viewBounds.size.height * 1.25);
NSRect rect = { 0,height-pageHeight, 990, pageHeight };
NSSize size = NSMakeSize(990, height);

NSImage * compositeImage;
compositeImage = [[NSImage alloc] initWithSize:size];

[compositeImage lockFocus];

[[NSGraphicsContext currentContext]
setImageInterpolation: NSImageInterpolationHigh];
[[NSGraphicsContext currentContext] setShouldAntialias:YES];

NSData* theData = [pdfDoc dataRepresentation];
NSPDFImageRep* pdfRep = [NSPDFImageRep imageRepWithData:theData];

NSImage* pdfImage;

int i;
for(i=0;i<[pdfDoc pageCount];i++){
[pdfRep setCurrentPage:i];

NSRect pageW = [[pdfDoc pageAtIndex:i] boundsForBox:kPDFDisplayBoxMediaBox];

pdfImage = [[NSImage alloc] initWithSize: pageW.size];
NSSize fullSize = NSMakeSize(pageW.size.width*1.25, pageHeight);
[pdfImage setScalesWhenResized:YES];
[pdfImage setSize:fullSize];
[pdfImage addRepresentation:pdfRep];

NSRect r = { 0, rect.origin.y, pageW.size.width*1.25, pageHeight };
[pdfImage drawInRect: r
fromRect: NSZeroRect
operation: NSCompositeSourceOver
fraction: 1.0];

[pdfImage release]; pdfImage = nil;
rect.origin.y -= pageHeight;
}

[compositeImage unlockFocus];

NSData *imageData = [compositeImage TIFFRepresentation];
NSBitmapImageRep *imageRep = [NSBitmapImageRep imageRepWithData:imageData]; NSDictionary *imageProps = [NSDictionary dictionaryWithObject: [NSNumber numberWithFloat:0.9] forKey:NSImageInterlaced]; imageData = [imageRep representationUsingType:NSJPEGFileType properties:imageProps];
[imageData writeToFile:@"/Users/devon/Desktop/out.jpg" atomically:YES];

You can view images of the results at http://our-voice.info/results.html

Any help would be fantastic!
Devon
_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to