[英]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.