ios - CGBitmapContextCreate 在 iOS 9 上停止工作

标签 ios swift swift2 core-graphics

所以这段代码曾经适用于 iOS 8,但不适用于 iOS 9

let bitsPerComponent = CGImageGetBitsPerComponent(cgImage)
let colorSpace = CGImageGetColorSpace(cgImage)
let bitmapInfo = CGImageGetBitmapInfo(cgImage)
let context =
    CGBitmapContextCreate(
        nil, newPixelWidth, newPixelHeight, bitsPerComponent, 0, colorSpace,
        bitmapInfo.rawValue)

CoreGraphics的解释是:

CGBitmapContextCreate: unsupported parameter combination:
    8 integer bits/component;
    32 bits/pixel;
    RGB color space model; kCGImageAlphaLast;
    2400 bytes/row.
Valid parameters for RGB color space model are:
    16  bits per pixel,      5  bits per component,      kCGImageAlphaNoneSkipFirst
    32  bits per pixel,      8  bits per component,      kCGImageAlphaNoneSkipFirst
    32  bits per pixel,      8  bits per component,      kCGImageAlphaNoneSkipLast
    32  bits per pixel,      8  bits per component,      kCGImageAlphaPremultipliedFirst
    32  bits per pixel,      8  bits per component,      kCGImageAlphaPremultipliedLast
    64  bits per pixel,      16 bits per component,      kCGImageAlphaPremultipliedLast
    64  bits per pixel,      16 bits per component,      kCGImageAlphaNoneSkipLast
    128 bits per pixel,      32 bits per component,      kCGImageAlphaNoneSkipLast |kCGBitmapFloatComponents
    128 bits per pixel,      32 bits per component,      kCGImageAlphaPremultipliedLast |kCGBitmapFloatComponents

但是 newPixelWidth 是 600 并且 600*4 = 2400。这是怎么回事?

最佳答案

我不是专家,但你没有给出自己的答案吗?

32  bits per pixel,      8  bits per component,      kCGImageAlphaNoneSkipFirst
32  bits per pixel,      8  bits per component,      kCGImageAlphaNoneSkipLast
32  bits per pixel,      8  bits per component,      kCGImageAlphaPremultipliedFirst
32  bits per pixel,      8  bits per component,      kCGImageAlphaPremultipliedLast

这些都不是kCGImageAlphaLast,所以我认为这就是问题所在。

关于ios - CGBitmapContextCreate 在 iOS 9 上停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35351921/

相关文章:

ios - 跟踪用户喜欢的帖子 - flutter 和 firestore

ios - "Auto Layout Help"主题在哪里?

ios - 如何在 iOS 中为 UITabBarController 的更多 View Controller 设置 selectedindex

swift - 位置管理器在 gmsMapView swift 4.2 中显示错误位置

swift - Xcode 12 和 OSLog (os.log) : wrapping OSLogMessage causes compile error: Argument must be a string interpolation

ios - 如何解析来自网络请求的错误

swift - 使用 for 循环显示 4 个纹理

ios - 如何在授予位置权限后执行任务 ios

ios - AdMob 7.3.1 和 Swift 2.0 - 找不到模块

Swift 重写方法 didPressSend