读书人

C#保存图片为什么改变图片的大小?

发布时间: 2013-09-17 13:35:59 作者: rapoo

【求助】C#保存图片为什么改变图片的大小???
我是这么做的:我是先打开选择文件窗体,然后得到图片路径,保存到fullPath变量里,

byte[] b = ImgToByt(Image.FromFile(fullPath));

然后传到Web服务进行保存,Web服务的方法是这样的:

[WebMethod]
public object UpdateFile(byte[] content, string extended)
{
//重命名图片的名称与路径 保存到F盘下的DC文件夹
string pn = string.Format(@"F:\DC\{0}.{1}", DateTime.Now.ToString("yyyyMMddHHmmss"), extended);
//File.WriteAllBytes(Server.MapPath(pathandname), content);
//File.WriteAllBytes(pn, content);
MemoryStream ms=new MemoryStream(content);
FileStream fs=new FileStream(pn,FileMode.Create);
ms.WriteTo(fs);
ms.Close();
fs.Close();
return content.Length;
}

这里不管我用File.WriteAllBytes还是现在这种方法保存,图片大小都会改变,从100多K变成了200多K 图片 c#
[解决办法]
ImgToByt方法里写了什么?
[解决办法]
引用:
ImgToByt方法里写了什么?

你说你也是你回复给人家解决下也行阿
[解决办法]
img.Save方法本身就会改变原图数据,你无法包装读取和保存的格式是完全一样的,这里保存其实是图形编码。
另外imagedata = ms.GetBuffer();是错误的,要写成:imagedata = ms.ToArray();
Buffer的尺寸远大于实际大小,不然就不叫缓存了。

读书人网 >C#

热点推荐