일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- Programming
- 함수
- Direct2D
- Kotlin
- 프로그래밍
- 지식나눔강좌
- 문법
- 연산자
- c#
- Javascript
- Windows
- 포인터
- 김성엽
- c++
- 이지스퍼블리싱
- 백준
- 리뷰
- c
- doit코틀린프로그래밍
- Win32
- 배열
- VS ERROR
- Tips강좌
- 티스토리
- CS
- Desktop
- 알고리즘
- Visual Studio
- tipssoft
- Tips프로그래밍강좌
- Yesterday
- Today
- Total
F.R.I.D.A.Y.
Direct2D - WIC IWICBitmapFlipRotator 본문
이미지를 회전하거나 반전시킬 수 있는 IWICBitmapFlipRotator
IWICBitmapFlipRotator
이미지를 회전하거나 반전시킬 수 있는 인터페이스입니다.
단점
먼저 구현 및 시연을 하기 전에 단점을 들자면, 기준에 맞추어 원하는 각도로 변형은 불가능합니다. 애초에 WIC가 Windows Imaging Component의 약자로, 불러오기 및 저장하기가 주된 목적이기 때문입니다. 따라서 만일 90°의 배수로 이미지를 회전시키는 경우가 아니라면 IWICBitmapFlipRotator 객체는 사용할 수 없습니다. 이미지 반전의 경우 상하, 좌우 변형만 가능합니다.
구현
IWICBitmapFlipRotator의 구현은 IWICImagingFactory에서 할 수 있습니다.
IWICImagingFactory* pWicFactory;
IWICBitmapFlipRotator* pRotator;
pWicFactory->CreateFlipRotator(&pRotator);
시연
IWICBitmapFlipRotator는 다른 IWICBitmapSource를 상속한 인터페이스와 마찬가지로 Initialize 메서드를 이용해 변형을 적용할 수 있습니다.
pRotator->Initialize(pFrame, WICBitmapTransformFlipVertical);
출력 예시
참고
예제 작성을 하며 확인한 결과 이미지가 출력되어 나오는 과정이 굉장히 느립니다.[# 대략 15초 이상 걸린 듯 합니다.] 이미지 자체가 커서인지 아니면 다른 원인이 있는지는 알아봐야 합니다. 400KB 가량 되는 이미지 회전에도 상당한 시간이 걸린 것으로 보아 시스템 문제이거나 이미지 회전/반전에 IWICBitmapFlipRotator는 적절하지 않은 것으로 생각됩니다.
또한, 이미지 반전은 테스트하지 못했으나, 이미지 회전의 경우에는 Direct2D의 SetTransform 메서드를 이용해보는게 좋을 듯 싶습니다. 즉각 반응합니다.
# index
'DEV > Direct2D' 카테고리의 다른 글
물리엔진 - 중력 구현 (0) | 2021.05.10 |
---|---|
Direct2D - SetTransform (0) | 2021.05.05 |
Direct2D - WIC IWICBitmapClipper (0) | 2021.05.01 |
Direct2D - WIC IWICFormatConverter (0) | 2021.04.29 |
Direct2D - WIC IWICBitmapScaler (0) | 2021.04.29 |