仅使用核心图形的高斯噪声?

Adi*_*yam 5 cocoa core-graphics

我如何仅使用Core图形来生成噪声纹理背景?我被困在噪音部分因为无法在核心图形中添加噪声滤波器...

Adi*_*yam 4

大约一年后,我找到了答案:

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;
}
Run Code Online (Sandbox Code Playgroud)

这有效地生成了一个保证是随机的噪声图像,并且可以使用 Jason Harwig 答案中的代码进行绘制。