如何实现流输出图片文件时,实现动态的GIF效果
通过数据流的形式获取GIF图片,不管是保存后的图片还是输出该文件都出现了丢帧的现象,各位有没办法,帮忙解决一下了。C#主要部分的代码如下:
string cache_dir ="C:\\mm\\";
string filename = cache_dir +"38752.gif";
string imageStr="https://www.gdutbbs.com/images/smilies/023.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.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(); 在服务器上生成.gif文件,然后在页面上<img>上,这样不行吗?因为如果这样的话就不会存在所谓gif问题了,,,无论什么文件都用流取入用流输出...
至于楼主的源码我看得似懂非懂... .net初学的说... 呵呵。这是一个WAP方面的小功能。
主要是从远程服务器读取图片的数据流,然后在页面中显示出来。
我用了 System.Net.HttpWebRequest建立远程图片的连接,
然后使用System.Net.HttpWebResponse把图片的数据流读出来。
最后惊奇发现图片是获取下来了。只是GIF的图片显示成了静态的图片效果。
我知道使用WebClient的.DownloadFile方法把文件保存下来是没问题的。
只是奇怪为什么以流的形式保存就不行了。
页:
[1]