나는 신속한 이미지 조작으로 놀고있다.UnsafeMutableBufferPointer의 일부를 새로운 UnsafeMutableBufferPointer로 가져 오는 방법
this 코드를 사용하여 이미지 픽셀에 액세스합니다.
이미지 픽셀은 UnsafeMutableBufferPointer
으로 지정됩니다.
모든 픽셀은 하나 개의 데이터 목록에있는 모든 픽셀 위치를 계산해야합니다 :
let index = y * rgba.width + x
let pixel = pixels[index]
나는
public subscript(index: Int) -> [Pixel] {
get {
var column = [Pixel]()
for i in 0..<height {
column.append(pixels[index*height + i])
}
return column
}
}
그래서입니다 얻을에 대한 그래서 subscript
를 추가하려고 해요 오른쪽 열을 가리키는 UnsafeMutableBufferPointer
을 반환하는 방법이 있습니까? 배열 대신에?
더 많은 메모리 할당을 피하려고합니다. I 잘못 생각 않는
감사 것을 추천
, 화소 데이터는 열 * * 행으로 배열되지 않는다. 즉, 한 열의 픽셀이 인접한 메모리에 있지 않습니다. –
또한 UnsafeMutableBufferPointer는 "소유하지 않음"이며 기본 요소 저장소가 존재하는 한 유효합니다. –
해당 RGBA 코드에서 메모리가 누수됩니다. 픽셀 데이터에 할당 된 메모리는 절대로 릴리스되지 않습니다. –