Web カメラから画像フレームをキャプチャしていますが、それらを WPF の画像コントロールに設定すると、空白に見えます。
私が使用しているライブラリは Bitmap を返すので、それを BitmapImage に変換し、Dispatcher を介して Image コントロールのソースを BitmapImage に設定します。
void OnImageCaptured(Touchless.Vision.Contracts.IFrameSource frameSource, Touchless.Vision.Contracts.Frame frame, double fps)
{
image = frame.Image; // This is a class variable of type System.Drawing.Bitmap
Dispatcher.Invoke(new Action(UpdatePicture));
}
private void UpdatePicture()
{
imageControl.Source = null;
imageControl.Source = BitmapToBitmapImage(image);
}
private BitmapImage BitmapToBitmapImage(Bitmap bitmap)
{
using (MemoryStream ms = new MemoryStream())
{
bitmap.Save(ms, ImageFormat.Png);
ms.Position = 0;
BitmapImage bi = new BitmapImage();
bi.BeginInit();
bi.StreamSource = ms;
bi.EndInit();
return bi;
}
}
私の Image コントロールの XAML 宣言は、可能な限り一般的です。
<Image x:Name="imageControl" HorizontalAlignment="Left" Height="100" Margin="94,50,0,0" VerticalAlignment="Top" Width="100"/>
イメージ コントロールに何も表示されません。実行時エラーはありません。私は何を間違っていますか?
どうもありがとうございました!