문제

그래서 나는 스트레치 블트가 nwidthsrc/dest 및 nheightsrc/dest 매개 변수를 부정하여 이미지 및/또는 수직으로 이미지를 반영 할 수 있다는 것을 읽었습니다. StretchBLT의 성능 오버 헤드 없이이 기능을 원합니다. BITBLT로 동일한 기술을 시도했지만 작동하지 않았습니다.

StretchBlt의 과잉없이 BitBlt와 같은 단순한 이미지를 미러링 할 수있는 방법이 있습니까? 아니면 소스와 대상 크기가 동일하다면 StretchBLT가 성능에 영향을 미치지 않습니까?

도움이 되었습니까?

해결책

BITBLT는 해당 개별 픽셀에서 수학 작업 (또는 XOR 등) 만 수행하므로 이미지를 어떤 식 으로든 크기를 조정하지 않습니다. 이것이 바로 StretchBlt의 바로 그렇습니다. 대부분의 경우 그래픽 카드를 사용하여 성능을 가속화 할 수있는 것처럼 StretchBlt (다른 그래픽 크기 조정 작업과 비교)가 미친 듯이 빠릅니다.

다른 팁

모든 Win32 기능은 아마도 극도로 최적화 될 것입니다.

StretchBlt가 큰 성능이 될 것이라고 생각하는 이유는 무엇입니까?

StretchBLT를 사용하여 응용 프로그램을 프로파일 링 했습니까?

모든 비트 맵 데이터를 직접 반전시키고 StretchBlt를 더 잘 할 수 있는지 확인할 수 있습니다.

다음은 도움이 될 수있는 링크입니다.

http://www.codeguru.com/cpp/gm/bitmap/specialeffects/article.php/c1739

이미지를 미러링하려면 픽셀을 역 순서로 반복하면됩니다. 예를 들어 수평으로 미러링하려면 다음을 수행하면됩니다.

  1. 이미지 캔버스를 크기의 두 배로 확장하십시오
  2. 이미지의 맨 아래에서 시작하여 픽셀을 상단에서 미러 영역으로 작성하십시오.
  3. 왼쪽에서 오른쪽으로 3 단계를 수행하십시오.

나는 당신이 어떤 언어를 사용하고 있는지 모르지만 대부분의 언어를 사용하면 GDI를 사용하여 개별적으로 픽셀이나 비트를 조작 할 수 있습니다.

이미지에 대한 추가 정보를 알지 못한다면 (예 : 경계가 있으므로 특정 픽셀을 뒤집을 필요가 없다면 StretchBlt를 더 효율적으로 수행하지 않을 것입니다.

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