我有一个来自NSImage *myImage = [[NSBitmapImageRep alloc] initWithFocusedViewRect:[outputView bounds]];的NSImage,我需要将它保存到一个文件中。我还没有找到任何关于以任何格式保存NSImage的内容。有人这么做过吗?这有可能吗?
谢谢
发布于 2010-07-31 10:55:45
如果要创建实际视图的快照(而不是锁定焦点的图像),那么创建位图图像表示的另一种方法是ask the view for PDF data of the desired rectangle。这将是矢量而不是光栅(除了视图本身绘制图像的地方),这将更好地缩放到更高的分辨率。然后,您可以像写入任何其他数据一样将该数据写入文件。
发布于 2010-07-31 10:30:58
你说你正在制作一个NSImage的方式是不合理的。您将展示如何创建NSBitmapImageRep,而不是NSImage。
在将其保存到文件之前,需要将其转换为NSData。有一个NSImage方法可以转换为TIFF数据,还有一个NSBitmapImageRep方法可以转换为多种格式的数据。
发布于 2010-07-31 10:51:17
有了NSBitmapImageRep (正如JWWalker指出的,该代码不会创建NSImage实例),您可以要求映像代表提供其自身的CGImage版本,然后创建一个CGImageDestination以将该映像写入文件。这可能比获取数据对象(将在内存中保存光栅数据)更有效,并提供更多选项。
https://stackoverflow.com/questions/3376442
复制相似问题