이것은 버그가있는 프린터 드라이버를 해결하기위한 마지막 시도입니다. 호환되는 비트 맵으로 렌더링 한 다음 프린터 DC에 복사하기 전에 또는 복사하는 동안이 비트 맵을 회전하고 싶습니다.Windows 비트 맵을 90도 회전시키는 빠르고 쉬운 방법?
저는 GDI +를 권장하는 this previous question에 익숙하지만 GDI 만 사용하는 대답이 있는지 궁금합니다. 이러한 기술
이것은 버그가있는 프린터 드라이버를 해결하기위한 마지막 시도입니다. 호환되는 비트 맵으로 렌더링 한 다음 프린터 DC에 복사하기 전에 또는 복사하는 동안이 비트 맵을 회전하고 싶습니다.Windows 비트 맵을 90도 회전시키는 빠르고 쉬운 방법?
저는 GDI +를 권장하는 this previous question에 익숙하지만 GDI 만 사용하는 대답이 있는지 궁금합니다. 이러한 기술
하나가 작동한다 : 목적지로 지정된 평행 사변형의 소스 디바이스 컨텍스트에서 지정된 사각형의 색 데이터의 비트의 비트 - 블록 전송을 수행하는 "
PlgBlt
, 회전 된 평행 사변형의 좌표가있는 장치 컨텍스트 "
회전 행렬을 전달하는 SetWorldTransform
과 보통 BitBlt
의 조합입니다.
두 가지 모두 참고로 원본 DC에는 회전 변환이 없어야하며 대상 만 회전해야합니다.
지금 코드 예제를 제공 할 수 없지만 일부 인터넷 검색 기능은 이러한 함수를 사용하여 임의의 각도 수를 회전하는 방법에 대한 몇 가지 예를 보여줍니다. 90 개도에 -code :
PlgBlt
은 (여기에 언어를 용서 ... 그것은 VB의)SetWorldTransform
and BitBlt
. 코드가 다른 곳에서 변환을 수정하면 (예 : 어떤 VCL의 TGraphicControl
하위 항목도 Paint
메서드에서 수행되며 MFC 및 다른 일반적인 WinAPI 래퍼도 마찬가지 일 수 있음) GetWorldTransform
을 사용하여 현재 변환을 저장하고 현재 변환을 설정 (덮어 쓰기)하지 말고 ModifyWorldTransform
을 적용하십시오.나는이 중 GDI를 사용하여 빨리 또는 쉽게 비교 계산 모르겠어요 + :
응답 주셔서 감사합니다! 어려운 방법으로 비트 맵 데이터를 가져 와서 회전하고 새로운 비트 맵을 만들었습니다. –