从WIA ImageFile加载图片框?

时间:2011-06-20 15:01:18

标签: c# .net picturebox wia

我从一位同事手中接过了一个设计糟糕的项目,我希望直接从WIA命令加载一个图片框,该命令刚刚完成从连接的USB摄像头拍摄照片。

当前实现等待文件写入磁盘,然后从那里显示它 从磁盘重新读取文件。

Item item = d.ExecuteCommand(WIA.CommandID.wiaCommandTakePicture);

WIA.ImageFile imagefile = item.Transfer(FormatID.wiaFormatJPEG) as WIA.ImageFile;

我尝试将图像投射到给定的图片框中但没有成功

picBox.Image = (Image)imageFile;

1 个答案:

答案 0 :(得分:9)

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);