CGBitmapContextGetData 什么都不返回

CGBitmapContextGetData returning nothing

我想获取上下文的像素信息

我不知道为什么每个return都是空的

屏幕截图显示代码工作正常,但数据被视为字符数据,但事实并非如此。

由于变量 bitmapData 声明为 char*,调试器将其视为以 null 结尾的 C 字符串。它显示:""。这表示 bitmapData 不为空,但以空字符开头。

原始像素数据不是字符串,也不是字符数据。所以不能用strlen()。而且不可能用 printf("%c").

显示它

bitmapData 只是指向原始位图数据的指针。给定 bitmapData,无法推导出数据的长度。查询数据长度的唯一安全方法是调用:

    int length = CGBitmapContextGetBytesPerRow(context) * CGBitmapContextGetHeight(context);

由于您使用每像素 32 位创建位图,我建议将 bitmapData 声明为 uint32_t*。那么数组中的每个元素对应一个像素。