halcon读取jpg格式图片时,抛异常。最先想到的方法是用windows的画图软件或者PicPix软件将jpg格式的图片另存为BMP格式,但图片数量较多,这种方法不可取。
如下的方法,利用Graphics类中的DrawImage方法重新绘制不带图片格式的Bitmap,而后save为BMP格式的图片。代码如下
OpenFileDialog dialog = new OpenFileDialog
{
Filter = "Image|*.bmp;*.png;*.jpg;*.jpeg;*.tiff",
FilterIndex = 1
};
dialog.Multiselect = true;
if (dialog.ShowDialog() == DialogResult.OK)
{
string[] fileName = dialog.FileNames;
for (int i = 0; i < fileName.Length/3; i++)
{
Bitmap bitmap = new Bitmap(fileName[i]);
Bitmap image = new Bitmap(bitmap.Width, bitmap.Height);
using (Graphics graphics = Graphics.FromImage(image))
{
Rectangle destRect = new Rectangle(0, 0, bitmap.Width, bitmap.Height);
Rectangle srcRect = new Rectangle(0, 0, bitmap.Width, bitmap.Height);
graphics.DrawImage(bitmap, destRect, srcRect, GraphicsUnit.Pixel);
graphics.Dispose();
}
image.Save(@"C:\Users\Administrator\Desktop\image_bmp\"+i.ToString()+".bmp", ImageFormat.Bmp);
}
}