我在玩Swift中的圖像處理。使用this代碼訪問圖像像素。如何獲得UnsafeMutableBufferPointer的一部分作爲一個新的UnsafeMutableBufferPointer
圖像像素指向UnsafeMutableBufferPointer
。
所有像素數據的一個列表,每個像素位置需要被計算:
let index = y * rgba.width + x
let pixel = pixels[index]
我想添加一個subscript
因此對於獲得
public subscript(index: Int) -> [Pixel] {
get {
var column = [Pixel]()
for i in 0..<height {
column.append(pixels[index*height + i])
}
return column
}
}
那麼,有一種方法返回指向右列的UnsafeMutableBufferPointer
?而不是一個數組?
我試圖避免更多的內存分配。
感謝
除非我弄錯了,像素數據被安排在*行*不列。換句話說,列的像素不在連續的存儲器中。 –
另請注意,UnsafeMutableBufferPointer是「非擁有」的,只有存在基礎元素存儲時纔有效。 –
RGBA代碼泄漏內存:像素數據的分配內存永遠不會釋放。 –