Изображение с измененным размером неправильно отображается в растровое изображение

Я написал этот метод, чтобы изменить размер изображения и сохранить его в файл:

- (BOOL) saveImage: (NSImage*) image withSize: (NSSize) size type: (NSBitmapImageFileType) type toURL: (NSURL*) URL {
    NSImage* outputImage= [[NSImage alloc]initWithSize: size];
    NSBitmapImageRep* bitmap= [[NSBitmapImageRep alloc]initWithBitmapDataPlanes: NULL pixelsWide: size.width pixelsHigh: size.height bitsPerSample:8 samplesPerPixel:4 hasAlpha: type==NSPNGFileType isPlanar: NO colorSpaceName: NSCalibratedRGBColorSpace bytesPerRow:0 bitsPerPixel:0];
    [outputImage addRepresentation: bitmap];
    [image lockFocusOnRepresentation: bitmap];
    [image drawInRect: NSMakeRect(0, 0, size.width, size.height) fromRect: NSZeroRect operation: NSCompositeCopy fraction: 1.0];
    [image unlockFocus];
    NSDictionary* properties= type==NSJPEGFileType? @{NSImageCompressionFactor : @1.0} : @{};
    NSData* outputData= [bitmap representationUsingType: type properties: properties];
    return [outputData writeToURL: URL atomically: YES];
}

Таким образом, изображение должно быть нарисовано внутри растрового изображения, размер которого изменяется, масштабируя его по размеру. Если я использую этот метод для изменения размера и сохранения изображения, я получаю файл правильного размера, но это пустое изображение. Что не так с этим кодом?


person Ramy Al Zuhouri    schedule 20.01.2014    source источник