3

我从一位同事那里接手了一个设计不佳的项目,并希望直接从刚刚完成的 WIA 命令加载一个图片框,以便从连接的 USB 相机拍照。

当前的实现一直等到文件被写入磁盘,然后从那里显示它,可能从磁盘重新读取文件。

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

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

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

picBox.Image = (Image)imageFile;
4

1 回答 1

13

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);
于 2011-06-27T07:37:58.417 回答