保存文件:
System.Drawing.Bitmap bm = new System.Drawing.Bitmap(tWidth, tHeight);
。。。。。。
bm.Save(ms,ImageFormat.Jpeg);
读取文件:
System.IO.MemoryStream ms = new System.IO.MemoryStream(data);
System.Drawing.Image img = System.Drawing.Image.FromStream(ms);
img.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
故障现象:
读取文件的时候出现假死现象,网站运行非常的慢,但是没有down机,但是文件在其他的工具中打开正常
解决办法:
定义一个函数
private ImageCodecInfo GetEncoderInfo(String mimeType)
{
int j;
ImageCodecInfo[] encoders;
encoders = ImageCodecInfo.GetImageEncoders();
for (j = 0; j < encoders.Length; ++j)
if (encoders[j].MimeType == mimeType) return encoders[j];
return null;
}
将保存文件的部分修改如下,也就是采用强类型存储
ImageCodecInfo lIci;
EncoderParameter lEp;
EncoderParameters lEps;
lIci = GetEncoderInfo("image/jpeg");
lEp = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, 100L);
lEps = new EncoderParameters(1);
lEps.Param[0] = lEp;
bm.Save(ms, lIci, lEps);
bm.Dispose();
疑问:
找了好久,没有找出问题产生的原因,但是使用了此种方式以后,网站运行很稳定,难道是Image.Save的一个Bug?希望知道的朋友能给我留言,我使用的是VS2005