1

CIImage를 kCVPixelFormatType_128RGBAFloat 유형의 픽셀 버퍼에 렌더링하려고합니다. 그러나 CIContext.render()는 "지원되지 않는 형식"을 말하는 데 실패합니다. - 주장은 발생하지 않습니다CIImage를 32 비트/채널 부동 소수점 픽셀 버퍼로 렌더링하려면 어떻게해야합니까?

let context = CIContext() 
var buffer: CVPixelBuffer? = nil 
let buffer = CVPixelBufferCreate(nil, 
           width, 
           height, 
           kCVPixelFormatType_128RGBAFloat, 
           nil, 
           &buffer) 
assert(buffer != nil, "Couldn't create buffer") 
context.render(ciImage, to: buffer) 

버퍼가 성공적으로 생성 : 나는 아이폰 7 플러스 실행 아이폰 OS (11)

여기 내 코드의 테스트. 마지막 줄의 "지원되지 않는 형식"을 말하는 데 실패한 렌더링 만 있습니다.

두 번째 nil을 [kCVPixelBufferIOSurfacePropertiesKey: [:]] as CFDictionary으로 바꾸어도 IOSurface-backed CVPixelBuffer을 만들려고했으나 도움이되지 않았습니다.

어떻게 작동합니까?

형식이 kCVPixelFormatType_128RGBAFloat 여야하는데 여기에 들어가기에는 너무 복잡합니다. 즉, 반올림 할 수없는 소수 값을 포함하여 픽셀 값의 범위가 0-255보다 큰 것으로 단정합니다. CIContext를 호출 MTLDevice

  • 힘 입어 CIContext를 작성하기 EAGLContext
  • 힘 입어 CIContext 만들기

    이들 중 아무 것도 작동하지 않았습니다. 채널 이미지 당 32 비트 float 또는 채널 int 당 16 비트 렌더링이 지원되지 않습니까?

  • 답변

    관련 문제