通过数据流的形式获取GIF图片,不管是保存后的图片还是输出该文件都出现了丢帧的现象,各位有没办法,帮忙解决一下了。
C#主要部分的代码如下:
string cache_dir ="C:\\mm\\";
string filename = cache_dir + "38752.gif";
string imageStr="http://adimg.163.com/homepage/001275/baishi051016_10050.gif";
System.Net.HttpWebRequest httpWebRequest=(System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(imageStr);
System.Net.HttpWebResponse img_resp=(System.Net.HttpWebResponse)httpWebRequest.GetResponse();
System.Drawing.Image bp = System.Drawing.Image.FromStream(img_resp.GetResponseStream(),true);
bp.Save(filename,System.Drawing.Imaging.ImageFormat.Gif);
System.IO.MemoryStream ms = new System.IO.MemoryStream();
bp.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
byte [] image_data = new byte[ms.Length];
ms.Seek(0,System.IO.SeekOrigin.Begin);
ms.Read(image_data,0,image_data.Length); Response.Clear();
Response.ClearContent();
Response.ClearHeaders();
Response.AddHeader("Content-Type","image/gif");
Response.BinaryWrite(image_data);
//Write to cache file
if(!System.IO.Directory.Exists(cache_dir))
{
System.IO.Directory.CreateDirectory(cache_dir);
}
System.IO.FileStream fs = new System.IO.FileStream("C:\\mm\\dd.gif",FileMode.Create);
fs.Write(image_data,0,image_data.Length);
fs.Close();
C#主要部分的代码如下:
string cache_dir ="C:\\mm\\";
string filename = cache_dir + "38752.gif";
string imageStr="http://adimg.163.com/homepage/001275/baishi051016_10050.gif";
System.Net.HttpWebRequest httpWebRequest=(System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(imageStr);
System.Net.HttpWebResponse img_resp=(System.Net.HttpWebResponse)httpWebRequest.GetResponse();
System.Drawing.Image bp = System.Drawing.Image.FromStream(img_resp.GetResponseStream(),true);
bp.Save(filename,System.Drawing.Imaging.ImageFormat.Gif);
System.IO.MemoryStream ms = new System.IO.MemoryStream();
bp.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
byte [] image_data = new byte[ms.Length];
ms.Seek(0,System.IO.SeekOrigin.Begin);
ms.Read(image_data,0,image_data.Length); Response.Clear();
Response.ClearContent();
Response.ClearHeaders();
Response.AddHeader("Content-Type","image/gif");
Response.BinaryWrite(image_data);
//Write to cache file
if(!System.IO.Directory.Exists(cache_dir))
{
System.IO.Directory.CreateDirectory(cache_dir);
}
System.IO.FileStream fs = new System.IO.FileStream("C:\\mm\\dd.gif",FileMode.Create);
fs.Write(image_data,0,image_data.Length);
fs.Close();
解决方案 »
- List的扩展方法Where问题
- 如何截取绑定数据的下拉菜单的值
- C#中的水晶报表
- 请问我已经用数据源向导连接好了数据源,怎么Open()它和添加数据?
- 求救:“Default3”不会实现接口成员“System.Web.UI.ICallbackEventHandler.GetCallbackResult()”
- 跪求解法WEB中DataGridTextBox的取值方法~~~~~~~~~~~~~~~~~~~~~~~~~
- 新年新气象,祝各位在新的一年里,分多多,RMB多多!
- 大神们过来帮一下这个简单的问题
- 显示方法注释的问题
- 所有的高手都进来!!!这个问题绝对有向微软反映的价值!!!欢迎大家帮顶!!!
- 紧急情况,我的Web程序.cs文件怎么写代码的时候,反映很慢,写HTML就不慢.是怎么回事啊?
- 求帮助:TextBox服务器控件怎么实现自动滚动到文本的最低点
string filename = cache_dir + "38752.gif";
string imageStr="http://adimg.163.com/homepage/001275/baishi051016_10050.gif";
WebClient wc=new WebClient ();
wc.DownloadFile(imageStr,filename);System.Drawing.Image img=System.Drawing.Image .FromFile(filename);
img.Save (Response.OutputStream,System.Drawing .Imaging .ImageFormat.Gif);
非常谢谢的帮忙,照你的方法我已经把问题解决了。
只是有点奇怪,为什么直接用从数据流中获取数据时无法实现这个呢?