>백엔드 개발 >C++ >WPF의 리소스에서 이미지를 올바르게 로드하는 방법은 무엇입니까?

WPF의 리소스에서 이미지를 올바르게 로드하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2025-01-17 06:16:10912검색

How to Correctly Load Images from Resources in WPF?

WPF에서 이미지를 리소스로 로드

WPF 개발에서는 쉽게 액세스하고 배포할 수 있도록 프로젝트에 이미지를 리소스로 포함하려는 경우가 많습니다. 그러나 코드에서 이미지 소스를 동적으로 설정하는 것은 때때로 어려울 수 있습니다.

다음 코드를 사용하여 리소스에서 이미지를 로드하는 데 문제가 있다고 가정해 보겠습니다.

<code class="language-csharp">Assembly asm = Assembly.GetExecutingAssembly();
Stream iconStream = asm.GetManifestResourceStream("SomeImage.png");
PngBitmapDecoder iconDecoder = new PngBitmapDecoder(iconStream, BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.Default);
ImageSource iconSource = iconDecoder.Frames[0];
_icon.Source = iconSource;</code>

스트림에 이미지 데이터가 포함되어 있어도 이미지는 여전히 보이지 않습니다. 해결책은 어셈블리에서 리소스를 로드하기 위해 특별히 설계된 URI 체계인 Pack URI를 사용하는 것입니다.

다음은 Pack URI를 포함하는 업데이트된 방법입니다.

<code class="language-csharp">Image finalImage = new Image();
finalImage.Width = 80;
...
BitmapImage logo = new BitmapImage();
logo.BeginInit();
logo.UriSource = new Uri("pack://application:,,,/AssemblyName;component/Resources/logo.png");
logo.EndInit();
...
finalImage.Source = logo;</code>

이 URI는 인증을 "application:///"으로 지정하고 그 뒤에 어셈블리 짧은 이름, 리소스 파일 경로, 쉼표로 대체된 슬래시가 옵니다. 또한 빌드 작업으로 이미지 리소스를 "resource"로 설정해야 합니다.

Pack URI를 사용하면 WPF에 포함된 리소스를 안정적으로 로드할 수 있으므로 이미지를 사용자 인터페이스에 원활하게 통합할 수 있습니다.

위 내용은 WPF의 리소스에서 이미지를 올바르게 로드하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.