2010-07-31 72 views
0

我有一个NSImageNSImage *myImage = [[NSBitmapImageRep alloc] initWithFocusedViewRect:[outputView bounds]];,我需要将它保存到文件中。我无法找到任何有关以任何格式保存NSImage的信息。有没有人做过这个?它甚至有可能吗?将NSImage写入文件

谢谢

回答

1

如果您正在创建实际视图的快照(与您关注的图像相对),则创建位图图像代表的另一种方法是ask the view for PDF data of the desired rectangle。这将是矢量而不是栅格(除了视图本身绘制图像的地方),这将更好地扩展到更高的分辨率。然后,您会将这些数据写入文件,就像您使用其他数据一样。

+0

谢谢生病尝试。 – nosedive25 2010-07-31 15:29:45

2

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

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

1

有一个NSBitmapImageRep(就像JWWalker指出的那样,代码不会创建一个NSImage实例),你可以让图像代表自己的CGImage版本,然后创建一个CGImageDestination来将该图像写入文件。这可能比获取数据对象(这会将光栅数据保存在内存中)更有效,并提供更多选项。