如何在图片框中使用 WIA 显示从扫描仪获取的图像
How to show an image obtained from a scanner using WIA in a picture box
我想在图片框中显示从扫描仪检索到的图像。到目前为止,我已经能够将图像保存到临时文件中:
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中的图像数据class避免保存到磁盘?
您可以将 ImageFile 转换为 Image,然后创建一个 Bitmap 对象:
var myImage = (Image)imageFile;
Bitmap bmp = new Bitmap(myImage);
因此您不必(按照您的要求)保存在路径中。
请告诉我这是否适合你。
查看此 post 关于从 ImageFile 到 Image 的转换:
Load a picturebox from a WIA ImageFile?
根据@C。 Colin 评论,有一种方法可以使用内存流从 ImageFile 获取位图:
var imageBytes = (byte[])image.FileData.get_BinaryData();
var ms = new MemoryStream(imageBytes);
var img = Image.FromStream(ms);
Load a picturebox from a WIA ImageFile?
我想在图片框中显示从扫描仪检索到的图像。到目前为止,我已经能够将图像保存到临时文件中:
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中的图像数据class避免保存到磁盘?
您可以将 ImageFile 转换为 Image,然后创建一个 Bitmap 对象:
var myImage = (Image)imageFile;
Bitmap bmp = new Bitmap(myImage);
因此您不必(按照您的要求)保存在路径中。
请告诉我这是否适合你。
查看此 post 关于从 ImageFile 到 Image 的转换: Load a picturebox from a WIA ImageFile?
根据@C。 Colin 评论,有一种方法可以使用内存流从 ImageFile 获取位图:
var imageBytes = (byte[])image.FileData.get_BinaryData();
var ms = new MemoryStream(imageBytes);
var img = Image.FromStream(ms);
Load a picturebox from a WIA ImageFile?