On 10 Mar 2013, at 08:05, Markus Spoettl <ms_li...@shiftoption.com> wrote:

> On 3/10/13 1:55 AM, Mike Abdullah wrote:
> > Well that exception suggests you have a truly giant image on your hands.
> > Perhaps there's enough memory to do some work with it, but not all.
> 
> I was trying to say that the framework appears to be confusing the size. The 
> image itself is being serialized from and to archives and displayed on 
> screen. Unfortunately I don't have the data, but I assume it's an "normal" 
> sized image.
> 
> > The most important question: what are you actually calling
> > -TIFFRepresentation for? In practice it's often a rather inefficient method
> > to accomplish your end goal.
> 
> I'm using -TIFFRepresentation to produce a PNG representation. The are more 
> efficient ways to do that, I'm sure, but it generally seems to be working 
> fine:
> 
> NSData *tiff = [image TIFFRepresentation];
> NSBitmapImageRep *bmprep = [NSBitmapImageRep imageRepWithData:tiff];
> NSDictionary *props = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber 
> numberWithBool:NO], NSImageInterlaced, nil];
> NSData *pngData = [bmprep representationUsingType:NSPNGFileType 
> properties:props];

This is a massively wasteful approach. Likely the best compromise for your 
needs is to grab a CGImage from the NSImage, and then generate the PNG from 
that (either using NSBitmapImageRep or CGImageDestination). This takes care of 
only creating a fresh CGImage instance if actually needed.


_______________________________________________

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:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

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

Reply via email to