工大后院

 找回密码
 加入后院

扫一扫,访问微社区

QQ登录

只需一步,快速开始

搜索
查看: 1333|回复: 2

如何实现流输出图片文件时,实现动态的GIF效果

[复制链接]
发表于 2005-11-27 18:15 | 显示全部楼层 |阅读模式
通过数据流的形式获取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.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();
发表于 2005-11-27 18:49 | 显示全部楼层
在服务器上生成.gif文件,然后在页面上<img>上,这样不行吗?因为如果这样的话就不会存在所谓gif问题了,,,无论什么文件都用流取入用流输出...

至于楼主的源码我看得似懂非懂... .net初学的说...
回复

使用道具 举报

 楼主| 发表于 2005-11-27 19:18 | 显示全部楼层
呵呵。这是一个WAP方面的小功能。
主要是从远程服务器读取图片的数据流,然后在页面中显示出来。

我用了 System.Net.HttpWebRequest建立远程图片的连接,
然后使用System.Net.HttpWebResponse把图片的数据流读出来。
最后惊奇发现图片是获取下来了。只是GIF的图片显示成了静态的图片效果。

我知道使用WebClient的.DownloadFile方法把文件保存下来是没问题的。
只是奇怪为什么以流的形式保存就不行了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入后院

本版积分规则

QQ|Archiver|手机版|小黑屋|广告业务Q|工大后院 ( 粤ICP备10013660号 )

GMT+8, 2025-5-14 17:46

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

快速回复 返回顶部 返回列表