以编程方式更改图像

时间:2010-09-29 02:04:14

标签: c++ iphone objective-c png jpeg

我想以编程方式更改图像。专门针对iPhone,但是,一般答案可能有所帮助。例如,我怎样才能以编程方式添加滤镜效果,例如Photoshop中提供的效果。

显然,有可能是Fat Booth等应用程序的例子。这是什么出发点?将图像加载为NSData并了解PNG的编码方式并开始使用算法?可能?解决方案更简单?

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

iPhone SDK Development的第21章有一个如何显示和操作非常容易理解的照片的示例。更复杂的效果需要更复杂的代码,但这是开始的。

答案 1 :(得分:1)

首先以原始格式获取图像(原始像每个像素的原始字节[rgb] [rgb])然后操纵像素并从原始格式转换回图像。

在这里,您可以找到如何将uiimage转换为原始像素数据的信息,例如:

原始UIImage:Creating UIImage from raw RGBA data

UIimage to Raw:Can I edit the pixels of the UIImage's property CGImage

如果需要几何变换,可以使用坐标或opengl的映射,并将图像用作某些网格上的纹理,操纵网格(几何)并将场景渲染回图像。

您无需了解图像如何编码为PNG或JPG,系统可以为您完成。您只需知道自己想要实现的目标,然后构建自己的算法。

玩得开心!