이 오류가 발생합니다. 코드는 다음과 같습니다.오류 : 다른 스레드가이 스레드를 소유하고 있기 때문에 호출하는 스레드가이 개체에 액세스 할 수 없습니다.
Image image;
BitmapImage BmpImg;
MemoryStream ms;
public void Convert()
{
ms = new MemoryStream();
image.Save(ms, ImageFormat.Jpeg);
BmpImg = new BitmapImage();
BmpImg.BeginInit();
BmpImg.StreamSource = new MemoryStream(ms.ToArray());
BmpImg.EndInit();
}
private void Btn_Click(object sender, RoutedEventArgs e)
{
Dispatcher.Invoke(new Action(() => { Image.Source = BmpImg; }));
}
System.Drawing.Image를 BitmapImage로 변환하고 wpf에 표시하는 방법은 무엇입니까?
UI 스레드가 아닌 스레드에서 수행하지 마십시오. – Will
또한, 다른 메모리 스트림을 만들 필요가 없으며 단지'ms.Position = 0;'을 수행하면 기존 메모리 스트림을 재사용 할 수 있습니다. – Luaan