将NSImage写入文件

时间:2010-07-31 01:48:56

标签: cocoa file save mage

我有一个来自NSImage的{​​{1}},我需要将其保存到文件中。我找不到任何关于以任何格式保存NSImage *myImage = [[NSBitmapImageRep alloc] initWithFocusedViewRect:[outputView bounds]];的信息。有没有人这样做过?它甚至可能吗?

由于

3 个答案:

答案 0 :(得分:2)

你说你制作NSImage的方式没有意义。您将展示如何创建NSBitmapImageRep,而不是NSImage。

在将其保存到文件之前,转换为NSData。有一种NSImage方法可以转换为TIFF数据,并且有一种NSBitmapImageRep方法可以转换为多种格式的数据。

答案 1 :(得分:1)

拥有NSBitmapImageRep(正如JWWalker指出的那样,该代码不会创建NSImage实例),您可以向图像代表询问其自身的CGImage版本,然后创建CGImageDestination以将该图像写入文件。这可能比获取数据对象(将光栅数据保存在内存中)更有效,并提供更多选项。

答案 2 :(得分:1)

如果您要创建实际视图的快照(而不是您锁定焦点的图像),那么创建位图图像代表的替代方法将是ask the view for PDF data of the desired rectangle。这将是矢量而不是光栅(除了视图本身绘制图像的地方),这将更好地扩展到更高的分辨率。然后,您可以将该数据写入与任何其他数据相同的文件。