cocoa - 仅使用核心显卡的高斯噪声?

标签 cocoa core-graphics

我如何仅使用核心显卡来生成噪声纹理背景?我陷入了噪音部分,因为无法在核心显卡中添加噪音过滤器......

最佳答案

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

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/

相关文章:

xcode - 根据核心数据读取的特定顺序将列添加到表中

objective-c - NSMutableDictionary setObject : forKey - crashes 问题

objective-c - Objective-C 中单例类的严格实现

iphone - 为什么要使用像 CGRectMake 这样的函数?

ios - 试图画一个实心圆但它有黑色背景

swift - 某些 TableView View 未重新加载,因为我的 TableView Delegate 未接收 tableView :viewFor:row: for every row

xcode - 折叠 NSOutlineView Group 后如何保持选中行状态

iphone - UIPopoverController 没有箭头?

swift - MacOS Quartz Event Tap 监听错误事件

ios - 如何在 CoreGraphics 中执行 GL 的 `pushMatrix` 或 `popMatrix`?