Изменение размера изображения и сохранение его по указанному пути каталога в Какао - PullRequest
0 голосов
/ 14 марта 2012

Используя этот код, я пытаюсь изменить размер выбранного изображения, а затем хочу сохранить его по определенному пути:

-(void)processImage:(NSString*)inputPath:(int)imageWidth:(int)imageHeight:(NSString*)outputPath {

    NSImage * img = [NSImage imageNamed:inputPath];
    [img setSize: NSMakeSize(imageWidth,imageHeight)];

}

-(void)startProcessingImages {

    int i; // Loop counter.

    // Loop through all the files and process them.
    for( i = 0; i < [files count]; i++ )
    {
        inputFilePath = [[files objectAtIndex:i] retain];
        NSLog(@"filename::: %@", inputFilePath);

        // Do something with the filename.

        [selectedFile setStringValue:inputFilePath];

        NSLog(@"selectedFile:::: %@", selectedFile);
    }

    NSLog(@"curdir:::::%@", inputFilePath);

    NSString *aString = [[NSString stringWithFormat:@"%@%@%@", thumbnailDirPath , @"/" , fileNameNumber] retain];

    fileNameJPG = [[aString stringByAppendingString:@".jpg"] retain];

    [self processImage:inputFilePath: 66  :55  :thumbnailDirPath];
    [self processImage:inputFilePath: 800 :600 :thumbnailDirPath];
    [self processImage:inputFilePath: 320 :240 :thumbnailDirPath];

}

Моя проблема в том, что я не понимаю, как сохранить его в thumbnailDirPath.

Ответы [ 2 ]

0 голосов
/ 14 марта 2012
NSDictionary *options = [NSDictionary dictionaryWithObject:[NSNumber numberWithFloat:0.8] forKey:NSImageCompressionFactor];    
NSData *tiffData = [img TIFFRepresentation];
NSData *JPEGData = [[NSBitmapImageRep imageRepWithData:tiffData] representationUsingType:NSJPEGFileType properties:options];
NSError *anError;
if (![JPEGData outputPath options:0 error:&anError])
                MyLog(@"Error saving image: %@ to: %@", anError, outputPath);

Проверьте документацию для NSJPEGFileType , поскольку она покажет вам другие варианты сохранения, такие как PNG.

0 голосов
/ 14 марта 2012

вы должны сделать экспорт вашего изображения в файл. В настоящее время я вижу только, как сохранить изображение в формате TIFF.

[[img TIFFRepresentation] writeToFile:outputPathName atomacally:NO];

Где outputPathName - путь с именем файла миниатюры.

...