我有一个愚蠢的问题。我想加载JPEG文件并进行一些图像处理。在处理过程中,图像文件必须是pixel = by-pixel(unsigned char *),或格式为.bmp。我想知道我该怎么做?
处理后,我想将此文件保存为.bmp或.jpg,我该怎么办? 非常感谢,抱歉我的英语不好。
答案 0 :(得分:0)
评论中的链接很有用,但不完全是我认为你想要做的。您将不得不阅读有关Apple的绘图和图像处理技术Quartz的一些信息。 Apple有很好的文档,但它不是一个简单的一小时工作 - 计划至少一天或许更多。
假设您从一个UIImage开始(我猜,它并非全是关键):
获取该图像的CGImageRef(可能是[UIImage CGImage])
创建一个足够大的CGBitMapContext来渲染该图像(您可以询问CGImage的宽度和高度等)。
如果你想最终用alpha创建一个PNG,你需要创建一个足够大的alpha位图上下文,即使JPEG图像没有它。如果你想要另一个JPEG,你的工作会更容易。
将图像渲染到位图上下文中(有一个CGContextDraw ...例程)
现在,您的图片包含在您可以阅读和修改的位图中。除非你指定了alpha,否则布局可能是r-g-b,在这种情况下你必须确定alpha字节的位置。
修改了位图后,您可以从该位图创建一个新的CGImage,如果需要,可以使用它来获取UIImage。
PS:如果你搜索,你会发现很多示例代码和相关内容,所以你不会完全靠自己。