在园子中发布了几个Gif处理库的版本,通过邮件的方式的确也比较费力,很多朋友建议我在CodePlex上开源,前期不是我不愿意,只是实在懒得在上面拼凑蹩脚的E文,今天终于腾出一些时间,将Gif动画处理类库在CodePlex上发布了出来,以后有更新,大家可以到上面去下载,项目地址:
http://www.codeplex.com/GifLib
我采用的是New BSD License的开源协议,大家也可以对此类库进行扩充和修改.jillzhang在此谢过大家的支持,我也会一直更新和维护该项目.
------------------------------------------------------------------------------------------------------------------------------------
最后更新: 2008-04-02 20:00(第一次更新)
更新内容:
重构了全部代码,原来的代码是急于实现,没有过多考虑代码的优美,这次没有功能上的添加,算法上也没有太大的改变,只是用一种我认为更加合理的方式进行了一下代码重构,同时也感谢园子中好多朋友热情的指点和更正.
更改的地方比较多,不便赘述,有兴趣的同学直接到http://www.codeplex.com/GifLib 下载就可以了
------------------------------------------------------------------------------------------------------------------------------------
最后更新: 2008-04-11 00:30(第二次更新)
更新内容:
增加Gif旋转和翻转功能,函数为:
/**//// <summary>
/// 将Gif图片进行旋转或者翻转
/// </summary>
/// <param name="gifFilePath">原图像路径</param>
/// <param name="rotateType">翻转或者旋转方式</param>
/// <param name="outputPath">输出路径</param>
public static void Rotate(string gifFilePath, RotateFlipType rotateType, string outputPath)
效果
原图:
向左旋转
有兴趣的同学直接到http://www.codeplex.com/GifLib 下载就可以了
------------------------------------------------------------------------------------------------------
最后更新: 2008-04-13 00:30(第二次更新)
新增功能:
1)对Gif图像和Gif动画进行剪裁的功能
函数原型:
/**//// <summary>
/// 对Gif图片进行剪裁
/// </summary>
/// <param name="gifFilePath">原图像</param>
/// <param name="rect">剪裁区域</param>
/// <param name="outFilePath">输出路径</param>
public static void Crop(string gifFilePath, Rectangle rect, string outFilePath)2)修改了测试程序
运行效果:
打开GifUI,显示出现欢迎界面
过后,出现主界面
剪裁后的效果为:
----------------------------------------------------------------------------------------------------------------
最后更新: 2008-04-19 00:30(第三次更新)
改进:
1):修改了文字水印的算法。
原来的做法:因为gif是基于调色板的图像格式,所以并不是能添加任何种颜色的水印文本,如果恰好文本颜色在调色板中存在,那水印文本就能显示指定的颜色,如果没有,我原本是将文本颜色转换成与调色板中灰度值最接近的一个的,有些网友也测试出来,有些图片添加文本水印后,文本会更改颜色。我原来这样做有个好处,不改变调色板,不会影响图片的颜色信息
本次修改保留了原来的做法,且将原来做法的方法名称由WaterMark更改为了SmartWaterMark,而现在的WaterMark则是按照如下的规则生成水印
1)如果调色板中存在文本颜色,不用特殊处理
2)否则,如果调色板中颜色数目<256,则将调色板中的颜色数加倍,然后将文本颜色添加到新的调色板。最后更改动画对象GifImage的桢地属性
如果当前颜色数目为256,则采用8叉树颜色量化算法量化成256色的调色板来.
原本做法的水印效果:
本次修改效果:
-------------------------------------------------------------------------------------------------------------------------------------
不怎么会用CodePlex,前段时间在代码管理器上的项目文件层次弄得挺乱的,今天终于找到解决办法了,重新整理了代码管理器上目录结构(2008-04-20) ,请下载4288版本
----------------------------------------------------------------------------------------------------------------
最后更新: 2008-05-12 22:30(第四次更新)
更新内容
1)新增了图像水印的功能
4288 之前的版本中只存在添加文字水印的功能,这次添加图像水印,选择一个静态的水印图片和水印位置,便可以添加图像水印,效果如下图所示:
2) 修改了原来文字水印有时候颜色出现黑点的问题
原来的版本只将调色板进行了八叉树量化,但对图像却忘记了量化,所以会造成颜色失真,现已修正
3) 修正了缩略的错误
上次改版,缩略功能有些问题,现已修正
请下载最新的5285版本 http://www.codeplex.com/GifLib/SourceControl/DownloadSourceCode.aspx?changeSetId=5855