Cómo guardar un archivo PNG de NSImage (problemas con la retina)

Estoy haciendo algunas operaciones en las imágenes y, una vez que termine, quiero guardar la imagen como PNG en el disco. Estoy haciendo lo siguiente:

+ (void)saveImage:(NSImage *)image atPath:(NSString *)path {

    [image lockFocus] ;
    NSBitmapImageRep *imageRepresentation = [[NSBitmapImageRep alloc] initWithFocusedViewRect:NSMakeRect(0.0, 0.0, image.size.width, image.size.height)] ;
    [image unlockFocus] ;

    NSData *data = [imageRepresentation representationUsingType:NSPNGFileType properties:nil];
    [data writeToFile:path atomically:YES];
}

Este código funciona, pero el problema es con retina mac, si imprimo el objeto NSBitmapImageRep obtengo un tamaño y píxeles diferentes y, cuando mi imagen se guarda en el disco, es el doble del tamaño:

$0 = 0x0000000100413890 NSBitmapImageRep 0x100413890 Size={300, 300} ColorSpace=sRGB IEC61966-2.1 colorspace BPS=8 BPP=32 Pixels=600x600 Alpha=YES Planar=NO Format=0 CurrentBacking=<CGImageRef: 0x100414830>

Até para forzar el tamaño del píxel para no tener cuidado con la escala de retina, ya que quiero preservar el tamaño original:

imageRepresentation.pixelsWide = image.size.width;
imageRepresentation.pixelsHigh = image.size.height;

Esta vez tengo el tamaño correcto cuando imprimo el objeto NSBitmapImageRep, pero cuando guardo mi archivo todavía tengo el mismo problema:

$0 = 0x0000000100413890 NSBitmapImageRep 0x100413890 Size={300, 300} ColorSpace=sRGB IEC61966-2.1 colorspace BPS=8 BPP=32 Pixels=300x300 Alpha=YES Planar=NO Format=0 CurrentBacking=<CGImageRef: 0x100414830>

¿Alguna idea de cómo solucionar este problema y conservar el tamaño de píxel original?

Respuestas a la pregunta(5)

Su respuesta a la pregunta