[C#/WPF] Stream을 사용해 Image를 BitmapImage로 변환할 때 에러 해결 방법
System.Drawing.Image를 System.Windows.Media.Imaging.BitmapImage로 안녕하세요. 오늘은 아주 기초적이지만 놓치기 쉽다고 생각되는 부분(을 겪은 제 상황)을 알려드리겠습니다. 방금 한 일은, WPF DataGridCell에 마우스를 올리면 상위 DataGridRow의 Item의 Image를 ToolTip으로 보여주는 작업인데요, 해당 프로그램은 처음에 WinForms 어플리케이션으로 만들었다가 WPF로 컨버전하는 중이기 때문에 System.Drawing.Image를 WPF에서 사용할 수 있는 BitmapImage로 바뀌어야 만 했습니다. 해당 방법은 구글링하면 아주 손쉽게 찾을 수 있었는데, 문제는 본문에 놓친 부분이 댓글에 적혀 있었단 것을 몰랐다는 겁니다. 본문에는 아래와 같이 하라고 쓰여있었습니다. public static BitmapImage ToWpfBitmapImage(this Image image) { if (image == null) return null; var bimg = new BitmapImage(); var ms = new MemoryStream(); image.Save(ms, image.RawFormat); bimg.BeginInit(); bimg.StreamSource = ms; bimg.EndInit(); return bimg; } 네. 하지만 당연하게도 에러를 뿜어냈습니다. 에러가 안 났다면 제가 이 글을 쓰고 있지도 않았겠죠. 뭐 헤더가 손상되었을 수 있습니다 이런 에러를 뿜더라고요. 에러 원인 분석 에러가 나는 원인을 찾으려고 해당 Exception과 Message를 가지고 검색해도 잘