ios - 如何将 UIImage 与位图 int 数组 (rgb565) 相互转换

标签 ios objective-c image-processing bitmap uiimage

我需要将我的 UIImage 传递给图像处理算法,该算法采用 rgb565 格式的位图 int 数组。

稍后,它返回经过图像处理的 int 数组,我需要将其转换回 UIImage。

查看它的语法:

int* ImageProcessingAlgorithm(int bitmapArray[], int width, int height);

我搜索了很多地方,但似乎都没有 UIImage 到 int 数组的转换,反之亦然。我找到的最近的是 this但这涉及 char 数组——我尝试根据我的目的调整它,但我不断收到各种访问错误和 UIKit 库函数中的泄漏。也许我没有正确管理内存或者在 int-to-unsigned char-to-int 转换中出现了一些错误。

我可以处理那部分,但我仍然不确定它是否适合我的图像处理算法格式 (rgb565)。

我是图像处理的新手,图像处理算法对我来说是一个黑盒子,所以我只需要可以传入和传出该算法的整数数组。

我可以肯定的一件事是,该算法返回与输入相同数量的数组元素 - 即输入和输出数组表示相同数量的图像像素。

提前感谢您的帮助。

最佳答案

如我所料,CGBitmapContextGetData 函数返回一个指向数组的空指针,它可以转换为任何类型的数组指针。重要的是稍后对其进行处理。

这里是 documentation .

可以使用此技术转换为 rgb565,取自 here :

R5 = ( R8 * 249 + 1014 ) >> 11;
G6 = ( G8 * 253 +  505 ) >> 10;
B5 = ( B8 * 249 + 1014 ) >> 11;

关于ios - 如何将 UIImage 与位图 int 数组 (rgb565) 相互转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17766039/

相关文章:

ios - 如何解决 GigyaSwift v1.0 中的 Pending Registration 中断

ios - 以编程方式在 Objective C 中生成堆栈跟踪

python - 适用于图像密集型 Web 应用程序的最佳 Python/Django 架构

c# - 单击图像的一部分

objective-c - NSURLRequest - 请求超过 300 个字符的 url

ios - 验证对象释放

ios - TableView 没有出现在我的容器中

ios - Swift 汇总 respondsToSelector() 和 sizeWithFont()

objective-c - 覆盖 layoutSubViews : causes "CGAffineTransformInvert: singular matrix" randomly

python - 使用 python 和 PIL 分割图像以计算多个矩形对象的质心和旋转