2009-05-28 5 views
7

큰 ImageSource, 3000x3750 픽셀을 생성하는 클래스 라이브러리를 사용하고 있습니다. 이 이미지 소스를 BitmapImage로 변환하여이 이미지가 생성 될 때마다 크기를 조정하는 대신 DecodePixelWidth 또는 DecodePixelHeight를 활용하고 싶습니다.ImageSource를 BitmapImage로 변환 -

먼저 사용자를 위해이 이미지를 표시해야하며 대부분의 사용자는 1024x768의 화면 해상도를 가지고 있습니다.이 이미지 소스를이 이미지 소스에 이미지 컨트롤에 바인딩하고 있지만 "무겁게"표시 될 수 있습니다. 입니다.

어떻게하면됩니까? 아니면이 경우에 가장 적합한 솔루션은 무엇입니까?

감사합니다.

답변

1

BitmapImage 유형은 BitmapSource 및 궁극적으로 ImageSource (둘 다 추상 클래스 임)을 상속합니다. 개체의 실제 유형 (예 :)을 확인해야합니다. 운이 좋다면 실제로는 BitmapSource 객체를 반환 할 수 있습니다.이 객체를 사용하기 전에 해당 유형으로 캐스트해야합니다.

+0

나는 이것을 수행하여 ImageSource를 반환합니다. –

+0

@ 한스 : 내 게시물에서 지정한 정확한 통화를 사용 했습니까? 실제로는 기본 유형 (또는 변수 유형)이 아닌 실제 * 유형의 오브젝트를 리턴해야합니다. – Noldorin

+0

@ Noldorin : 그래, 나도 그 문서가 반환 유형이 ImageSource라고 말했어. 고마워. –

16

나는 그것이 이전 게시물 알고 있지만, 일을 시도 :

myBitmapImage = myImageSource as BitmapImage; 

그건 잘 작동합니다.

+1

이것의 반전은 나를 위해 작동, 그것을 캐스팅하여 BitmapImage에서 ImageSource로 변환. 감사! –

+0

그것은 나를 위해 작동하지 않습니다. – Butzke

+0

여기에 캐스트가 실패하면 자동으로 수행됩니다. 그래서'myImageSource'가'BitmapImage'에 캐스팅 될 수 없다면'myBitmapImage'는'null'이 될 것이고, 대신에'myBitmapImage = (BitmapImage) myImageSource; '를 사용할 것입니다. 느슨하게. – Peter