23

我迫切需要创建一个没有 alpha 通道的 CGContextRef。不幸的是,对于 Core Graphics,您不能使用 CGBitmapCreateContext 指定 kCGImageAlphaNone。

有人可以发布一个工作示例,说明如何在没有 alpha 通道的情况下创建 CGContextRef 吗?

我需要这个的原因是因为我最终试图调用 CGImageCreateWithMaskingColors,当然,如果提供的 CGImageRef 有一个 alpha 通道,这将不起作用。

请发布一个工作示例。如果你这样做了,你可以享受这样一个事实,即你将处于最前沿,并将成为第一个这样做的人!请发帖!

4

1 回答 1

60

您可以创建没有 Alpha 通道的位图上下文。您只是无法创建每个像素三个字节的位图上下文。这是秘密握手:

CGContextRef gc = CGBitmapContextCreate(NULL, myWidth, myHeight, 8, 0,
        myColorSpace, kCGImageAlphaNoneSkipLast);

在斯威夫特:

let gc = CGContext(
    data: nil,
    width: myWidth, height: myHeight,
    bitsPerComponent: 8, bytesPerRow: 0,
    space: myColorSpace,
    bitmapInfo: CGImageAlphaInfo.noneSkipLast.rawValue)
于 2012-02-23T06:52:10.467 回答