Andrea "Kiraya"Magini

IT Professional Master

Single post

Salvare un file jpg da un NSImage

Sembrerà stupido, ma a volte ci si perde nell’infinita documentazione di Apple..
La necessità di oggi è come ricavare una jpg e salvarla su file partendo da un oggetto NSImage, nella nostra User Interface..

Ipotizzando di avere un controllo in grado di restituirci una NSImage (ad esempio un NSImageCell o cose simili
Per poter estrarre una jpg e salvarla dobbiamo innanzitutto rappresentare l’immagine come TIFF, importante per fare in modo che venga generata l’imageData sottostante.
Poi creiamo una rappresentazione bitmap della nostra imageData.
Poi instanziamo un dictionary per specificare le properties che vogliamo dare alla trasformazione (ad esempio la percentuale di qualità della compressione).
Infine otteniamo una rappresentazione JPEG dell’image data e la salviamo su disco.

NSImage *image = [mImageCell objectValue];
NSData *imageData = [image TIFFRepresentation];
NSBitmapImageRep *imageRep = [NSBitmapImageRep imageRepWithData:imageData];
NSDictionary *imageProps = [NSDictionary dictionaryWithObject:[NSNumber numberWithFloat:0.75] forKey:NSImageCompressionFactor];
imageData = [imageRep representationUsingType:NSJPEGFileType properties:imageProps];
[imageData writeToFile:@"/tmp/test.jpg" atomically:YES];

ed il gioco e’ fatto.