我需要把一张GIF动画用程序缩放和裁切啊,前提是不能失真,图片质量不能变
这样的程序是不是很复杂啊,
这样的程序是不是很复杂啊,
解决方案 »
- 请提供一个VS2008(WEB/C#) 使用CrystalReport的Sample
- 可以直接用InvokeMember创建webserver上的对象么?
- 但是datatable 里面的datetime不可以为null,只能是dbnull.value 有没有类同isnull样的函数
- ListView 为什么要在前面建一个空的列头,不然会显示不正确
- treeview 取宽度
- win form下的DataGridView邦定了某种IEnumerable<T>的数据源之后怎样保持动态更新?
- C# access bool
- 【急】请高手讨论EasyCode所成生代码中的问题
- 监控SQL Sever中表是否插入数据,有则实时显示在程序上,怎么做?
- 各位大侠帮帮忙,怎么设置listbox中的某条item的高度!
- Nhibernate 中如何查询 "日期1" 到 "日期2"之间的记录?
- for循环的问题
using (FileStream stream = new FileStream(strFilePath, FileMode.OpenOrCreate, FileAccess.ReadWrite))
{
image = System.Drawing.Image.FromStream(stream);
double douH = Convert.ToDouble(image.Height);
double douW = Convert.ToDouble(image.Width);
double douFlag = (double)200 / (double)150; // imageのwidth : 200 height : 150
if ((douW / douH > douFlag) && douW > 200)
{
image = image.GetThumbnailImage(200, ConvertUtility.ToInt(200 * douH / douW), null, IntPtr.Zero);
}
else if ((douW / douH <= douFlag) && douH > 150)
{
image = image.GetThumbnailImage(ConvertUtility.ToInt(150 * douW / douH), 150, null, IntPtr.Zero);
}
image.Save(strPath + "s_" + fileName);
stream.Close();
}
这个是缩得,最大大小200长150宽,按比例缩。
详细查看Image类 用drawImage重绘即可
GIF没做过,位图BMP的缩放,一般都用插值算法
我是楼主,可能开始表达的不清晰,说白了就是一张普通的GIF动画,比如280*288的,我把他等比缩成240*144,需要不失真的,
其实我已经找到此算法,但是他这种算法做出来以后图片容量太大,用的是全局调色板
所以我现在来这寻求一种比较精简的算法。