如何在图片框中显示使用WIA从扫描仪获得的图像

时间:2017-12-28 10:17:28

标签: c# winforms wia

我想在图片框中显示从扫描仪中检索到的图像。到目前为止,我已经能够将图像保存到临时文件:

 private void btnScan_Click(object sender, EventArgs e)
 {
        var fn = System.IO.Path.GetTempFileName();
        System.IO.File.Delete(fn);
        var image = Scanner.Scan();
        image.SaveFile(fn);
        _ScannedImage = Bitmap.FromFile(fn);
        pictureBoxMain.Image = _ScannedImage;
 }

有没有办法转换ImageFile类中的图像数据,避免将其保存到磁盘?

2 个答案:

答案 0 :(得分:1)

根据@C。 Colin评论,theres'是一种使用内存流从ImageFile获取bitbitmap的方法:

var imageBytes = (byte[])image.FileData.get_BinaryData(); 
var ms = new MemoryStream(imageBytes);
var img = Image.FromStream(ms);

Load a picturebox from a WIA ImageFile?

答案 1 :(得分:0)

您可以将ImageFile转换为Image,然后创建一个Bitmap对象:

var myImage = (Image)imageFile;
Bitmap bmp = new Bitmap(myImage);

因此您无需在路径中保存(按照您的要求)。

请告诉我这是否适合你。

请参阅此文章关于从ImageFile转换为Image: Load a picturebox from a WIA ImageFile?