// [image writeToFile:[NSURL fileURLWithPath:@"/some/path/image.png"]]; - (void)writeToFile:(NSURL *)fileURL { NSBitmapImageRep *bitmapRep = nil; for (NSImageRep *imageRep in [self representations]) { if ([imageRep isKindOfClass:[NSBitmapImageRep class]]) { bitmapRep = (NSBitmapImageRep *)imageRep; break; // stop on first bitmap rep we find } } if (!bitmapRep) { bitmapRep = [NSBitmapImageRep imageRepWithData:[self TIFFRepresentation]]; } NSData *imageData = [bitmapRep representationUsingType:[self fileTypeForFile:[fileURL lastPathComponent]] properties:nil]; [imageData writeToURL:fileURL atomically:NO]; } - (NSBitmapImageFileType)fileTypeForFile:(NSString *)file { NSString *extension = [[file pathExtension] lowercaseString]; if ([extension isEqualToString:@"png"]) { return NSPNGFileType; } else if ([extension isEqualToString:@"gif"]) { return NSGIFFileType; } else if ([extension isEqualToString:@"jpg"] || [extension isEqualToString:@"jpeg"]) { return NSJPEGFileType; } else { return NSTIFFFileType; } }