我想在图片框中显示从扫描仪中检索到的图像。到目前为止,我已经能够将图像保存到临时文件:
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类中的图像数据,避免将其保存到磁盘?
答案 0 :(得分:1)
根据@C。 Colin评论,theres'是一种使用内存流从ImageFile获取bitbitmap的方法:
var imageBytes = (byte[])image.FileData.get_BinaryData();
var ms = new MemoryStream(imageBytes);
var img = Image.FromStream(ms);
答案 1 :(得分:0)
您可以将ImageFile转换为Image,然后创建一个Bitmap对象:
var myImage = (Image)imageFile;
Bitmap bmp = new Bitmap(myImage);
因此您无需在路径中保存(按照您的要求)。
请告诉我这是否适合你。
请参阅此文章关于从ImageFile转换为Image: Load a picturebox from a WIA ImageFile?