문제

나는 그것이 가능하고 GDI+를 사용하는 것보다 훨씬 빠르다는 것을 알고 있습니다.그러나 DirectX를 사용하여 이미지 크기를 조정하고 디스크에 저장하는 좋은 예를 찾지 못했습니다.나는 이것을 GDI+에서 반복해서 구현했는데, 그건 어렵지 않습니다.그러나 GDI+는 하드웨어 가속을 사용하지 않으며 그래픽 카드를 활용하여 더 나은 성능을 얻을 수 있기를 바랐습니다.

도움이 되었습니까?

해결책

DirectX를 정말로 사용해야합니까? GDI+는 이미지를 크기를 조정하는 데 잘 작동합니다. DirectX에서는 이미지를 크기를 조정할 필요가 없으며 이미지를 텍스처로 표시 할 가능성이 높습니다. 텍스처는 3D 객체 (삼각형/다각형/메쉬)에만 적용될 수 있으므로 3D 객체 및 뷰 포트의 크기는 실제 이미지 크기를 결정합니다. 3D 객체 내에서 텍스처를 확장 해야하는 경우 텍스처 좌표 또는 매트릭스를 재생하십시오.

텍스처를 조작하기 위해 알파 블렌딩, 마스킹 및 모든 종류의 텍스처 조작 기술을 사용할 수 있습니다. GDI+와 같은 개별 픽셀을 조작하기 위해 여전히 GDI+가해야 할 일이라고 생각합니다. DirectX는 이미지 조작을하지 않았습니다.

다른 팁

이미지를 텍스처로 로드하고 텍스처 매핑하여 쿼드에 매핑한 다음 해당 쿼드를 화면에 원하는 크기로 그릴 수 있습니다.그러면 스케일링이 수행됩니다.그런 다음 화면에서 픽셀 데이터를 가져와서 파일에 저장하거나 추가로 처리할 수 있습니다.

그것은 간단합니다.SDK와 함께 제공되는 기본 텍스처링 DirectX 예제를 조정하여 이 작업을 수행할 수 있습니다.

그러나 그것은 ~이다 느린.렌더링 자체가 아니라 화면에서 메모리 버퍼로 픽셀 데이터를 전송하는 것입니다.

Imho 한 버퍼에서 다른 버퍼로의 이중선형 스케일링을 사용하여 이미지 크기를 조정하는 작은 코드를 작성하는 것이 훨씬 더 간단하고 빠릅니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top