我尝试使用CIAreaAverage
从某些图像中捕获平均颜色。
捕获操作进展顺利,来自过滤器的outputImage给了我单个像素CIImage
。
尝试使用RGB
捕获uint8_t
信息时发生问题
“pixel”(uint8_t)始终为空(“”)。
我很确定我的渲染上下文不是nil
,只有"render"
操作出错了。
我不知道如何从CIImage
中正确捕获RGB数据。
最佳答案
pixel
应该直接作为参数传递给render:toBitmap:rowBytes:bounds:format:
函数,而不是作为指针。
正确的函数调用应为:
[con render: average.outputImage toBitmap: pixel rowBytes: 4 bounds: onePixel format: kCIFormatRGBA8]
pixel
已经是一个指针,因此通过将指针传递给pixel
,pixel
指向的内存地址将更改。之后访问pixel[0]
将访问现在可能无效的内存地址,这就是为什么您的程序因EXC_BAD_ACCESS
而崩溃的原因。关于ios - iOS- objective-c -无法使用UInt8渲染像素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49994310/