我如何仅使用核心显卡来生成噪声纹理背景?我陷入了噪音部分,因为无法在核心显卡中添加噪音过滤器......
最佳答案
大约一年后,我找到了答案:
CGImageRef CGGenerateNoiseImage(CGSize size, CGFloat factor) CF_RETURNS_RETAINED {
NSUInteger bits = fabs(size.width) * fabs(size.height);
char *rgba = (char *)malloc(bits);
srand(124);
for(int i = 0; i < bits; ++i)
rgba[i] = (rand() % 256) * factor;
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceGray();
CGContextRef bitmapContext = CGBitmapContextCreate(rgba, fabs(size.width), fabs(size.height),
8, fabs(size.width), colorSpace, kCGImageAlphaNone);
CGImageRef image = CGBitmapContextCreateImage(bitmapContext);
CFRelease(bitmapContext);
CGColorSpaceRelease(colorSpace);
free(rgba);
return image;
}
这有效地生成了一个保证是随机的噪声图像,并且可以使用 Jason Harwig 的答案中的代码进行绘制。
关于cocoa - 仅使用核心显卡的高斯噪声?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4960197/