我已经从同事那里接管了一个设计不佳的项目,并希望直接从WIA命令直接加载图片框,该命令刚刚完成,可以从连接的USB相机拍摄图片。
当前实现会等到文件已写入磁盘后,再从那里显示
从磁盘重新读取文件。
Item item = d.ExecuteCommand(WIA.CommandID.wiaCommandTakePicture);
WIA.ImageFile imagefile = item.Transfer(FormatID.wiaFormatJPEG) as WIA.ImageFile;
我尝试将图像投射到给定的图片框而没有成功
picBox.Image = (Image)imageFile;
最佳答案
WIA.ImageFile是COM对象包装,而不是System.Drawing.Image。
您将不得不将WIA.ImageFile Save方法与临时文件弄混,或者尝试如下所示的内存中解决方案:
http://www.pcreview.co.uk/forums/wia-imagefile-system-drawing-image-t2321026.html
var imageBytes = (byte[])image.FileData.get_BinaryData();
var ms = new MemoryStream(imageBytes);
var img = Image.FromStream(ms);