我有一个NSImage
from NSImage *myImage = [[NSBitmapImageRep alloc] initWithFocusedViewRect:[outputView bounds]];
,我需要将它保存到一个文件中。我还没有找到任何关于NSImage
以任何格式保存的信息。有人做过吗?甚至可能吗?
谢谢
你说你制作 NSImage 的方式没有意义。您将展示如何创建 NSBitmapImageRep,而不是 NSImage。
在将其保存到文件之前,先将其转换为 NSData。有一个 NSImage 方法可以转换为 TIFF 数据,还有一个 NSBitmapImageRep 方法可以转换为几种格式的数据。
拥有一个 NSBitmapImageRep(正如 JWWalker 指出的那样,该代码不会创建 NSImage 实例),您可以向图像代表索取其自身的 CGImage 版本,然后创建一个 CGImageDestination 将该图像写入文件。这可能比获取数据对象(将栅格数据保存在内存中)更有效,并提供更多选项。
如果您正在创建实际视图的快照(而不是您已锁定焦点的图像),那么创建位图图像代表的替代方法是向视图询问所需矩形的 PDF 数据。这将是矢量而不是光栅(视图本身绘制图像的地方除外),它将更好地缩放到更高的分辨率。然后,您将该数据写入文件,就像您写入任何其他数据一样。