Как преобразовать данные в формат JPEG? - PullRequest
2 голосов
/ 13 сентября 2010

У меня есть этот код:

NSImage * strImage = [[NSImage alloc]initWithContentsOfFile:ImageFilePath] ;
NSData *imageData = [strImage TIFFRepresentation];

Мне нужно преобразовать imageData в формат JPEG. Я хочу, чтобы это работало так же, как QImage save().

Чтобы вы могли видеть, как работает save(), я дам вам ссылку: http://doc.qt.nokia.com/4.6/qimage.html#save

Пожалуйста, помогите мне.

1 Ответ

13 голосов
/ 13 сентября 2010

Из CocoaDev ... Если вы что-то делаете с NSImage после его создания:

NSData *imageData = [image TIFFRepresentation];
NSBitmapImageRep *imageRep = [NSBitmapImageRep imageRepWithData:imageData];
NSNumber *compressionFactor = [NSNumber numberWithFloat:0.9];
NSDictionary *imageProps = [NSDictionary dictionaryWithObject:compressionFactor
                                         forKey:NSImageCompressionFactor];
imageData = [imageRep representationUsingType:NSJPEGFileType properties:imageProps];
[imageData writeToFile:filename atomically:YES];

Если вы раньше ничего не делали с NSImage:

NSArray *representations = [myImage representations];
NSNumber *compressionFactor = [NSNumber numberWithFloat:0.9];
NSDictionary *imageProps = [NSDictionary dictionaryWithObject:compressionFactor
                                         forKey:NSImageCompressionFactor];
NSData *bitmapData = [NSBitmapImageRep representationOfImageRepsInArray:representations 
                                       usingType:NSJPEGFileType 
                                       properties:imageProps];    
[bitmapData writeToFile:filename atomically:YES];
...