最近,我一直在尝试在 CIImage 上设置 CIColorCube 来创建自定义效果。这是我现在所拥有的:
uint8_t color_cube_data[8*4] = {
0, 0, 0, 1,
255, 0, 0, 1,
0, 255, 0, 1,
255, 255, 0, 1,
0, 0, 255, 1,
255, 0, 255, 1,
0, 255, 255, 1,
255, 255, 255, 1
};
NSData * cube_data =[NSData dataWithBytes:color_cube_data length:8*4*sizeof(uint8_t)];
CIFilter *filter = [CIFilter filterWithName:@"CIColorCube"];
[filter setValue:beginImage forKey:kCIInputImageKey];
[filter setValue:@2 forKey:@"inputCubeDimension"];
[filter setValue:cube_data forKey:@"inputCubeData"];
outputImage = [filter outputImage];
我已经查看了 WWDC 2012 Core Image session ,但我所拥有的仍然无法正常工作。我也查过网络,关于这个问题的资源很少。我上面的代码只返回一个黑色图像。
在 Apple 的 developer library 中,它说:
然而,这对我来说毫无意义。我的
inputCubeData
需要如何格式化? 最佳答案
接受的答案是不正确的。虽然立方体数据确实应该缩放到 [0 .. 1]
,但它应该是 float
,而不是 int
。float color_cube_data[8*4] = { 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0};
(从技术上讲,您不必将“.0”放在每个数字上,编译器知道如何处理它。)
关于iphone - 格式化 CIColorCube 数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15798368/