F.R.I.D.A.Y.

Direct2D - WIC IWICBitmapFlipRotator 본문

DEV/Direct2D

Direct2D - WIC IWICBitmapFlipRotator

F.R.I.D.A.Y. 2021. 5. 4. 18:20
반응형

 이미지를 회전하거나 반전시킬 수 있는 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

728x90
반응형

'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
Comments