有谁知道为什么CGContextDrawImage会把我的形象颠倒过来?我从我的应用程序加载图像:
UIImage *image = [UIImage imageNamed:@"testImage.png"];
Run Code Online (Sandbox Code Playgroud)
然后简单地要求核心图形将其绘制到我的上下文中:
CGContextDrawImage(context, CGRectMake(0, 0, 145, 15), image.CGImage);
Run Code Online (Sandbox Code Playgroud)
它呈现在正确的位置和尺寸,但图像是颠倒的.我一定错过了一些非常明显的东西吗?
的石英2D节目指南定义了各种α-存储模式的可用性:

我们应该将哪些用于RGB上下文,为什么?
对于非不透明的上下文,kCGImageAlphaPremultipliedFirst或kCGImageAlphaPremultipliedLast?
对于不透明的上下文,kCGImageAlphaNoneSkipFirst还是kCGImageAlphaNoneSkipLast?
价值的选择是否会影响绩效?
通常,我会看到kCGImageAlphaPremultipliedFirst非透明和kCGImageAlphaNoneSkipFirst不透明的上下文.有些人说这些表现更好,但我没有看到任何关于此的确凿证据或文件.
快速搜索GitHub的显示,开发商的青睐kCGImageAlphaPremultipliedFirst了kCGImageAlphaPremultipliedLast和kCGImageAlphaNoneSkipLast超过kCGImageAlphaNoneSkipFirst.可悲的是,这只不过是轶事证据.
我在使用Swift CGImageAlphaInfo和CGBitmapInfo在Swift中执行按位操作时遇到了麻烦.
特别是,我不知道如何移植这个Objective-C代码:
bitmapInfo &= ~kCGBitmapAlphaInfoMask;
bitmapInfo |= kCGImageAlphaNoneSkipFirst;
Run Code Online (Sandbox Code Playgroud)
以下简单的Swift端口'CGBitmapInfo' is not identical to 'Bool'在最后一行产生了一些有点神秘的编译器错误:
bitmapInfo &= ~CGBitmapInfo.AlphaInfoMask
bitmapInfo |= CGImageAlphaInfo.NoneSkipFirst
Run Code Online (Sandbox Code Playgroud)
看一下源代码,我注意到它CGBitmapInfo被声明为一段RawOptionSetType时间CGImageAlphaInfo不是.也许这与它有关?
关于按位运算符的官方文档不包含枚举,这没有任何帮助.