GSI

WPF 이미지 표시하기

WPF 2007. 10. 5. 09:44 |

WPF 에서 이미지 표시하기

BitmapImage 는 XAML 로딩을 위해 최적화된 특수한 BitmapSource 이고 Image 컨트롤의  Source로 이미지를 표시하기 쉬운 방법입니다.

이미지 컨트롤 사용하기
Image는 프레임워크 엘리먼트이고 애플리케이션에서 이미지를 표시하는 주된 수단입니다. XAML 에서 Image는 어트리뷰트 문법 또는 프로퍼티 문법의 두 가지 방법으로 사용될 수 있습니다. 다음 예제는 어트리뷰트 문법과 프로퍼티 태그 문법을 모두 사용하여 이미지를 200 픽셀 너비로 그리는 바업ㅂ을 보여줍니다. 어트리뷰트 문법과 프로퍼티 문법의 더 자세한 정보는 Dependency Properties Overview를 참고 하십시오.

XAML
<!-- 간단한 이미지 렌더링. 그러나 이 방법으로 렌더링 하는 것은 애플리케이션 메모리의 사용량에는 좋지 않습니다. 같은 결과를 더 적은 메모리로 생성하는 아래쪽 마크업을 참고 하십시오. -->
<Image Width = "200" Source = "c:\Temp\aaa.jpg"/>

<Image Width = "200">
   <Image.Source>
      <!-- 상당한 애플리케이션 메모리를 아끼기 위해 이미지 소스의 BitmapImage의 DecodePixelWidth나 DecodePixelHeight 값을 원하는 높이와 너비로 설정하십시오. 그렇게 하지 않으면 애플리케이션은 이미지를 화면에 표시될 크기가 아닌 그것의 보통 크기로 렌더링 될 것이라고 생각하고 캐슁될 것입니다.-->
      <BitmapImage DecodePixelWidth = "200" UriSource = "c:\test\aaa.jpg"/>
   </Image.Source>
</Image>

다음 예제는 코드를 사용하여 이미지를 200 픽셀 너비로 그리는 방법을 보여줍니다.

노트 :
BitmapImage는 다중 속성에서 초기화 최적화를 위해 ISupportInitilize 인터페이스를 구현합니다. 속성 변경은 오직 객체 초기화 중에만 발생할 수 있습니다. 초기화가 시작되었음을 알리는 신호로 BeginInit을 호출하고 초기화가 완료되었음을 알리는 신호로 EndInit을 호출합니다. 일단 초기화 되면 속성 변경은 무시됩니다.

C#
// 이미지 엘리먼트 생성
Image myImage = new Image();
myImage.Width = 200;

//소스 생성
BitmapImage myBitmapImage = new BitmapImage();

// BitmapImage.UriSource는 반드시 BeginInit/EndInit 블럭 내에 있어야 합니다.
myBitmapImage.BeginInit();
myBitmapImage.UriSource = new Uri(@"c:\test\aaa.jpg");
myBitmapImage.DecodePixelWidth = 200;
myBitmapImage.EndInit();

//이미지 소스 설정
myImage.Source = myBitmapImage;

Posted by gsi
: