我尝试使用CIAreaAverage从某些图像中捕获平均颜色。
捕获操作进展顺利,来自过滤器的outputImage给了我单个像素CIImage
尝试使用RGB捕获uint8_t信息时发生问题

“pixel”(uint8_t)始终为空(“”)。

我很确定我的渲染上下文不是nil,只有"render"操作出错了。
我不知道如何从CIImage中正确捕获RGB数据。
ios - iOS- objective-c -无法使用UInt8渲染像素-LMLPHP

最佳答案

pixel应该直接作为参数传递给render:toBitmap:rowBytes:bounds:format:函数,而不是作为指针。

正确的函数调用应为:

[con render: average.outputImage toBitmap: pixel rowBytes: 4 bounds: onePixel format: kCIFormatRGBA8]
pixel已经是一个指针,因此通过将指针传递给pixelpixel指向的内存地址将更改。之后访问pixel[0]将访问现在可能无效的内存地址,这就是为什么您的程序因EXC_BAD_ACCESS而崩溃的原因。

关于ios - iOS- objective-c -无法使用UInt8渲染像素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49994310/

10-12 22:32