2013-05-15 3 views
0

D3DX11SaveTextureToFile을 사용하여 채널당 16 비트 (RGBA) PNG 파일을 생성하는 방법이 있습니까? 또는 다이렉트 X의 버전은 모든 이미지 라이브러리 (C++), 모든 이미지 포맷채널 당 16 비트 PNG 파일 생성 절차

나는 여기에 샘플 코드를 사용하려고 : http://msdn.microsoft.com/en-us/library/windows/desktop/bb205131(v=vs.85).aspx

및 D3D11 버전으로 함수 이름을 수정했습니다.

desc.Format을 DXGI_FORMAT_R8G8B8A8_UNORM으로 설정하면 프로그램이 완벽하게 작동합니다.

그러나 desc.Format을 DXGI_FORMAT_R16G16B16A16_UNORM으로 변경하면 D3DX11SaveTextureToFile이 E_FAIL을 반환합니다.

Devil (개발자의 이미지 라이브러리)을 사용하려고했지만 채널 당 16 비트 png 파일을 지원하지 않습니다.

+0

libpng를 직접 사용하지 않는 이유는 무엇입니까? – Fabel

답변

0

모든 텍스처 형식을 저장할 수있는 유일한 형식은 D3DX11_IFF_DDS입니다. D3DX11SaveTextureToFile은 16 비트 PNG를 저장할 수 없습니다. 하나의 가능성은 텍스처의 이미지 데이터를 추출하여 여기에서 설명하는 가능성 중 하나 (예 : OpenCV 또는 libpng)로 수동으로 저장하는 것입니다. Writing 16 bit uncompressed image using OpenCV.

+0

제안에 감사드립니다. 나는 그것을 시도 할 것입니다. – Vivacissimo