On Jun 8, 2013, at 7:39 PM, Gerriet M. Denkmann wrote: > url = some/picture.gif > NSDataReadingOptions mask = 0; // NSDataReadingUncached > NSData *data = [ NSData dataWithContentsOfURL: url options: mask error: > &outError ]; > got 19420 bytes > > NSImage *image = [ [ NSImage alloc ] initWithContentsOfURL: url ]; > BOOL ok = [ NSArchiver archiveRootObject: image toFile: @"/tmp/anImage" > ]; > got 307559 bytes (NSKeyedArchiver adds another half kB) > > This 16-fold increase of data is - regardless of image quality - not > acceptable for my purposes.
This isn't the technique I recommended. Don't archive the image object. Create a data representation using +[NSBitmapImageRep representationOfImageRepsInArray:usingType:properties:]. $ python ... >>> from AppKit import * >>> u = >>> NSURL.URLWithString_("https://upload.wikimedia.org/wikipedia/commons/e/e2/Sunflower_as_gif_small.gif") >>> d1 = NSData.dataWithContentsOfURL_(u) >>> d1.length() 57270 >>> i = NSImage.alloc().initWithContentsOfURL_(u) >>> d2 = >>> NSBitmapImageRep.representationOfImageRepsInArray_usingType_properties_(i.representations(), >>> NSGIFFileType, None) >>> d2.length() 54377 It actually got smaller! Regards, Ken _______________________________________________ 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