NSImage

Cocoa documentation says that initByReferencingFile is a “lazy” way of doing things, so I assume it should be avoided.

	// initWithContentsOfFile gives us full resolution for some reason, but
	// initByReferencingFile gives us a low resolution representation; we must
	// also have setDataRetained to get and keep the full resolution and prevent
	// blocky pixelation problems
	NSImage *image = [[NSImage alloc] initWithContentsOfFile:file];
	[image setDataRetained:YES];