본문 바로가기

C#

[WPF] 이미지 byte[] 를 바로 BitmapSource 로 옮기자.

바로  BitmapSource.Create(...)  를 이용하는 방법이다.

이전까지 WriteableBitmap 을 사용하였지만, 이방법이 더욱 간단하고 처리과정에서 이슈도 적다.

 

보통 별도 쓰레드 루프 에서 지속적인 이미지 byte[] 를 얻고 아래의 코드를 활용하여 GUI 에서 처리 한다.


신경을 써야 하는 부분은  간혹   InvalidOperationException   이 발생한다.

try
{
    bsrc = BitmapSource.Create(screenRenderSize.Width, screenRenderSize.Height, 96, 96, PixelFormats.Rgb24, null, W_RawSource_data, REGB24Stride);
    bsrc.Freeze();

}
catch (InvalidOperationException)
{
    return null;
}

또한 원본 데이터의 Stride 선택에 신경을 써 줘야 한다.




참고)

파이어플라이 캠의 FlyCapture2Managedd_v100 중 종속성 오류가 지속될 경우 VisualStudio 2010 을 설치 한다.

아마 그 안에  VC++90 이 설치가 되기 때문일것으로 생각 됨.