繁体   English   中英

Re:快速从UIImage / CGImage获取像素数据作为数组

[英]Re: Get pixel data as array from UIImage/CGImage in swift

这段代码适用于我(Swift 2游乐场)灰度级,正在加载颜色.BMP图像...

快速从UIImage / CGImage获取像素数据作为数组

...但是如果我将bytesPerPixel更改为3(或4)并使用

let colorSpace = CGColorSpaceCreateDeviceRGB()

...代码仍然可以正常运行,但像素值均为零。 关于如何解决该问题的任何建议?

您可能忘记了CGImageAlphaInfo参数。 对于彩色图像,如果假定bytesPerPixel为4,则在创建上下文时需要设置RGBA(或ARGB)。 以下是没有alpha通道的RGBA的示例。

// RGBA format
let ctx = CGBitmapContextCreate(&data, pixelsWide, pixelsHigh, 8,   
    bitmapBytesPerRow, colorSpace, CGImageAlphaInfo.NoneSkipLast.rawValue)

根据文档,您有以下选择:

enum CGImageAlphaInfo : UInt32 {
    case None
    case PremultipliedLast
    case PremultipliedFirst
    case Last
    case First
    case NoneSkipLast
    case NoneSkipFirst
    case Only
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM