无法隐式转换类型';System.Drawing.Image';到';System.Drawing.B
本文关键字:System Drawing Image 转换 类型 | 更新日期: 2023-09-27 18:20:28
声明了一个位图,该位图是
private Bitmap img1 = null;
private Bitmap img2 = null;
图像将在openFileDialog中选择后被轻击
所选择的图像被放置在阵列中。
imgName = openFD.FileNames;
然后按按钮1显示这些图像。
pictureBox1.Image = Image.FromFile(imgName[0]);
pictureBox2.Image = Image.FromFile(imgName[1]);
我用这个替换了button1代码
img1 = Image.FromFile(imgName[0]);
img2 = Image.FromFile(imgName[1]);
但是出现错误
无法将类型"System.Drawing.Image"隐式转换为"System.Drawing.Bitmap"
我会尝试将代码更改为img1 = Bitmap.FromFile(imgName[0]);
。但是仍然具有相同的错误
有什么建议可以纠正或正确处理吗?
img1 = new Bitmap(imgName[0]);
img2 = new Bitmap(imgName[1]);
img1 = (Bitmap) Image.FromFile(imgName[0]);
img2 = (Bitmap) Image.FromFile(imgName[1]);
由于错误消息表明您不能隐式执行此操作,因此需要将其显式转换为Bitmap
编辑
根据下面的评论,我建议使用icktoofay的答案,即使用Bitmap构造函数,或者如果您可以直接使用Image类而不是使用Bitmap,您也可以使用
我在代码中使用了这三行来将字节值分配给c#中的图像。
ImageConverter converter = new ImageConverter();
pbStudentPicture.Image = (Image)converter.ConvertFrom(StudentPinfo.Picture);
pbStudentPicture.SizeMode = PictureBoxSizeMode.StretchImage;
在我的案例中,我的System.Drawing.Image
不是来自文件,而是来自设备的摄像头。由于我不想将图像保存到文件中作为中间步骤,所以我使用了以下方法:
var imageBitmap = new Bitmap(image.Width, image.Height);
using (var graphics = Graphics.FromImage(imageBitmap))
graphics.DrawImage(image, 0, 0, image.Width, image.Height);
也许这对其他人有帮助;)