Winform项目中在Debug文件夹下有一个“ZP.bmp”,要把它读到Picturebox(Pic_Identity_BM)中,有两种方法:、
第一种
FileStream fsReadPic = new FileStream("zp.bmp", FileMode.Open, FileAccess.Read);
Bitmap bmTemp = new Bitmap(fsReadPic);
Pic_Identity_BM.Image = bmTemp;
fsReadPic.Close();
第二种:
Pic_Identity_BM.Image = Image.FromFile("zp.bmp");问题:请问这两种方式有什么不同???用第一种方式把图片读取到Pictruebox中,用下面的方法获取Pictruebox中的图片时会出现异常,获取不到Pictrue中的图片:byte[] IDimg = CS_Common.ReadPicBox.ImageDatabytes(bitmap);
if (IDimg.ToString() != "")
{
m_pxryinfo.IDimg = IDimg;
}
else
{
m_pxryinfo.IDimg = CS_Common.IDimgNull.IDimgNull.imgNull();
}IDimg对象为空ImageDatabytes在下面如果换用第二种方式把图片读取到Pictruebox中,上面的方法获取Pictruebox中的图片时可以正常获取,但是不能连续读取图片,会出现错误:“内存被保护或内存被损坏"public static byte[] ImageDatabytes(Bitmap myBitmap)
{
try
{
using (MemoryStream curImageStream = new MemoryStream())
{
myBitmap.Save(curImageStream, System.Drawing.Imaging.ImageFormat.Png);
curImageStream.Flush();
byte[] bmpBytes = curImageStream.ToArray();
return bmpBytes;
}
}
catch
{
return null;
}
}
请问这样的问题应该怎样解决呢???
第一种
FileStream fsReadPic = new FileStream("zp.bmp", FileMode.Open, FileAccess.Read);
Bitmap bmTemp = new Bitmap(fsReadPic);
Pic_Identity_BM.Image = bmTemp;
fsReadPic.Close();
第二种:
Pic_Identity_BM.Image = Image.FromFile("zp.bmp");问题:请问这两种方式有什么不同???用第一种方式把图片读取到Pictruebox中,用下面的方法获取Pictruebox中的图片时会出现异常,获取不到Pictrue中的图片:byte[] IDimg = CS_Common.ReadPicBox.ImageDatabytes(bitmap);
if (IDimg.ToString() != "")
{
m_pxryinfo.IDimg = IDimg;
}
else
{
m_pxryinfo.IDimg = CS_Common.IDimgNull.IDimgNull.imgNull();
}IDimg对象为空ImageDatabytes在下面如果换用第二种方式把图片读取到Pictruebox中,上面的方法获取Pictruebox中的图片时可以正常获取,但是不能连续读取图片,会出现错误:“内存被保护或内存被损坏"public static byte[] ImageDatabytes(Bitmap myBitmap)
{
try
{
using (MemoryStream curImageStream = new MemoryStream())
{
myBitmap.Save(curImageStream, System.Drawing.Imaging.ImageFormat.Png);
curImageStream.Flush();
byte[] bmpBytes = curImageStream.ToArray();
return bmpBytes;
}
}
catch
{
return null;
}
}
请问这样的问题应该怎样解决呢???
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货