簡體   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