cocoa保存CIImage,因为bmp文件图像已损坏

时间:2015-03-12 10:08:40

标签: objective-c macos cocoa core-image

在OSX 10.9.5上我尝试将使用QTkit抓取的图像保存为BMP文件,但只有当我保存为bmp文件时,图像文件输出才被切片(损坏),就像这样

http://imgur.com/ZuQ0NtC

但是,如果我将图像保存为TIFF或PNG文件,这里的一切都是正确的

http://imgur.com/xjJNNRa

我使用的代码是

  

-UPDATE - 只有在CIImage上应用CIfilter时,图像才会损坏我

CIImage *I;

I=[Video cropImg:I];
//saving to disk
NSBitmapImageRep* rep = [[NSBitmapImageRep alloc]initWithCIImage:I];
NSImage *nsImage = [[NSImage alloc] initWithSize:rep.size];
[nsImage addRepresentation:rep];

NSData *imageData = [nsImage TIFFRepresentation];

imageData = [rep representationUsingType:NSBMPFileType properties:NULL];

if ([imageData writeToFile:targetPath atomically:NO]==NO)

{
    NSLog(@"Error file");
}

如果我将 NSBMPFileType 更改为 NSPNGFileType ,图片就可以,但我需要bmp文件

1 个答案:

答案 0 :(得分:0)

也许,你应该跳过转换为" NSImage"因为下面的代码适合我。

I=[Video cropImg:I];
NSBitmapImageRep *rep = [[NSBitmapImageRep alloc]initWithCIImage:I];
NSData *imageData = [rep representationUsingType:NSBMPFileType properties:NULL];
[imageData writeToURL:fileURL atomically:YES];