2010-07-30 20 views
1

有人能指出一个关于使用cocoa API进行图像处理的综合示例吗?我正在为Mac开发应用程序,而不是为iPhone设备开发。我通常会遇到UIImage操作,它提供了一组直观的方法来实现任务,例如按像素操作并以不同格式保存到文件中。在使用Appkit的情况下,NSImage真的很难控制图像的每个像素数据并保存为不同的文件格式,如PNG,而不仅仅是TIFF。使用Cocoa API的综合图像处理示例

回答

4

如果你想与像素合作,CGImage和CGImageSource和CGImageDestination是要走的路。与AppKit的NSImage不同,它通常是为了处理任何类型的图像而设计的,CGImage类专门为光栅图像设计。

0

您可以撷取图像对象的位图表示并修改其数据

NSBitmapImageRep *rep = [[image representations] objectAtIndex: 0]; 
unsigned char *bmpData = [rep bitmapData]; 

要保存修改的表达以PNG格式请执行以下操作:

NSData *data = [bits representationUsingType: NSPNGFileType properties: nil]; 
[data writeToFile: @"/path-to-your-file/image.png" atomically: NO]; 
+1

请注意,可能有多个表示,#0不能保证是你想要的。另外,操作从'bitmapData'获得的像素不一定会通过改变图像内容。如果你想进行修改,你应该从修改过的数据中创建一个新的NSBitmapImageRep和NSImage。 – walkytalky 2010-07-30 10:05:24