本文共 1240 字,大约阅读时间需要 4 分钟。
不废话,新增了多个gif图片合并功能,改善了单色算法 合成效果: 原图:
图片太多,截图如上 合并后效果:
下面三个动画![](https://images.cnblogs.com/cnblogs_com/jillzhang/0.gif)
![](https://images.cnblogs.com/cnblogs_com/jillzhang/1qw.gif)
合并后的效果
注意,您合并的图像最好大小一致,我没有找到完全一样的图像,所以费了很大的周折,写js的时候,都知道ie这家伙适应能力强,随便写个函数就可以支持,可这次IE却拖了后腿,我的原图像大小不一致,开始我没找到最大高度和最大长度,就一个个合成了,在windows中浏览没有任何问题,可以在IE中就无法动画了,在firefox中却可以,费了好长时间才找到是大小的原因。后来加了一个
Size FindMaxSize(List < string > sources)![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
List<int> widths = new List<int>();
List<int> heights = new List<int>();
foreach (string s in sources)![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
Bitmap bmp = new Bitmap(s);
widths.Add(bmp.Width);
heights.Add(bmp.Height);
bmp.Dispose();
}
widths.Sort();
heights.Sort();
return new Size(widths[widths.Count - 1], heights[heights.Count - 1]);
} 才解决问题
合并的方法为:
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
/**/ /// <summary>
/// 合并多个gif文件
/// </summary>
/// <param name="sourceGifs">原图像路径集合</param>
/// <param name="outGif">合并后图像路径</param>
/// <param name="delay">间隔时间</param>
/// <param name="repeat">是否重复播放</param>
public void Merge(List<string> sourceGifs, string outGif, short delay,bool repeat) 另外,单色算法有所改变,先的单色效果为: 原图:
单色后:
发现有些人将代码拷贝过去之后,马上将版权改成自己的名字,而且在网上肆意张贴,以后的版本不会直接提供文件下载,如果有需要朋友,只要是园子的注册用户,发邮件给我,我保准回复。这样也许可以为园子增加一些注册用户吧,我的email:jillzhang@126.com,再次声明,园子中兄弟有需要的,发邮件给我就可以了,由此带来的不便,还请兄弟们能理解。邮件中最好注明博客园ID和网址声明:代码公开,但使用的时候,请保留作者信息和版权声明,这样我才会有动力继续完善,谢谢配合 转载于:https://www.cnblogs.com/jillzhang/archive/2008/03/14/1106427.html