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