从WIA ImageFile加载图片框?

Kev*_*ker 2 .net c# wia picturebox

我从一位同事那里接过了一个设计糟糕的项目,我正在寻找直接从WIA命令加载一个图片框,该命令刚刚完成从连接的USB摄像头拍摄照片.

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

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

WIA.ImageFile imagefile = item.Transfer(FormatID.wiaFormatJPEG) as WIA.ImageFile;
Run Code Online (Sandbox Code Playgroud)

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

picBox.Image = (Image)imageFile;
Run Code Online (Sandbox Code Playgroud)

And*_*rko 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);
Run Code Online (Sandbox Code Playgroud)