积极答复者
关于c# 保存图片的问题··· 求教!!!

问题
-
一张原始图片,我将其以Jpeg格式 转换成 byte[] 数组,然后将其保存至数据库。
现在,我从数据中将这张图片的二进制数组读出放在以个byte[]数组中 b1,
然后将其转换成图像,用Jpeg格式保存到硬盘。
保存完以后我加载刚保存到硬盘的图像,然后再用一个byte[]数组 b2来保存其转换成二进制的数组。
这时我将两个 byte[]数组通过循环来进行比较。内容是否一致,
为什么全是不一致的???这是同一张图片。
Code:
//比较的代码
private bool PasswordEquals(byte[] b1, byte[] b2)
{
if (b1.Length != b2.Length)
{
return false;
}
if (b1 == null || b2 == null)
{
return false;
}
for (int i = 0; i < b1.Length; i++)
{
if (b1[i] != b2[i])
{
MessageBox.Show(i.ToString());
return false;
}
}
return true;
}
答案
-
尝试使用ToArray方法,GetBuffer会把未使用的字节也取出来!
周雪峰- 已建议为答案 Raymond TangModerator 2009年11月18日 5:28
- 已标记为答案 Riquel_DongModerator 2009年11月19日 9:59
-
你好!
我想周版主说的意思是,把
imagedata = ms.GetBuffer();
改成
imagedata = ms.ToArray();
的意思吧。
Please remember to mark the replies as answers if they help and unmark them if they provide no help.
Welcome to the All-In-One Code Framework! If you have any feedback, please tell us.- 已标记为答案 Riquel_DongModerator 2009年11月19日 9:59
全部回复
-
imageHandler.Current_Bitmap.Save(imageHandler.BitmapPath,ImageFormat.Jpeg);
数据库读出的文件保存到硬盘
public byte[] ImgToByt(Image img)
{
MemoryStream ms = new MemoryStream();
byte[] imagedata = null;
img.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
imagedata = ms.GetBuffer();
return imagedata;
}public Image BytToImg(byte[] byt)
{
MemoryStream ms = new MemoryStream(byt);
Image img = Image.FromStream(ms);
return img;
}
图片转数组上传和转数组比较的 -
尝试使用ToArray方法,GetBuffer会把未使用的字节也取出来!
周雪峰- 已建议为答案 Raymond TangModerator 2009年11月18日 5:28
- 已标记为答案 Riquel_DongModerator 2009年11月19日 9:59
-
你好!
我想周版主说的意思是,把
imagedata = ms.GetBuffer();
改成
imagedata = ms.ToArray();
的意思吧。
Please remember to mark the replies as answers if they help and unmark them if they provide no help.
Welcome to the All-In-One Code Framework! If you have any feedback, please tell us.- 已标记为答案 Riquel_DongModerator 2009年11月19日 9:59