Shell scripting is awesome, but there are situations where it just won't help you. Like when you're supposed to save the full-res icon of any file as a PNG image.
Luckily it's quite easy with a bit of ObjC. This is what I threw together for this particular problem:
# GeIcon.m
# Save icon of given path as a PNG image
#import <AppKit/AppKit.h>
int main (int argc, const char * argv[])
{
if (argc < 2) {
printf("Usage: GetIcon input output");
return 1;
}
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSString *imgPath = [NSString stringWithCString:argv[1]];
NSString *outPath = [NSString stringWithCString:argv[2]];
NSWorkspace *ws = [NSWorkspace sharedWorkspace];
NSImage *img = [ws iconForFile:imgPath];
NSData *data = [img TIFFRepresentation];
NSBitmapImageRep *bits = [NSBitmapImageRep imageRepWithData:data];
NSData *imgData = [bits representationUsingType:NSPNGFileType properties:nil];
[imgData writeToFile:outPath atomically:NO];
[pool drain];
return 0;
}
If anyone know how to do this using shell tools, please let me know. ;-)