吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 9960|回复: 21
收起左侧

[其他转载] 【C#】GIF软件-可逐帧查看GIF中的图片和图片压缩功能

[复制链接]
简单单单 发表于 2019-5-7 11:00
本帖最后由 简单单单 于 2019-5-14 16:45 编辑

软件主要功能:
一:两种代码压缩功能
二:逐帧查看GIF中的图片
三:自定义倍速播放GIF(添加倒放功能)

2019.05.14 修复部分BUG 并添加倒放功能
软件编译大小23kb,VS2015编译,WinGifTool\bin\Debug下WinGifTool.exe可直接运行使用
拖入图片即可显示图片总帧数
软件窗体可放大,如果gif大小显示不全,放大程序窗体再点击预览或者播放即可
微信截图_20190514162910.png
代码其实没什么,参考网上资料,做这个软件主要是很小巧的实现看GIF某些帧的图片,不用打开PS才能看
压缩功能可能有噪点

[C#] 纯文本查看 复制代码
/// <summary>
        /// 获取指定帧数的图片
        /// </summary>
        /// <param name="path"></param>
        /// <param name="index"></param>
        /// <returns></returns>
        private Image GetImg(string path, int index)
        {
            Image res = Image.FromFile(path);
            int width = res.Width;
            int height = res.Height;
            Image gif = new Bitmap(width, height);
            Image frame = new Bitmap(width, height);
            Graphics g = Graphics.FromImage(gif);
            Rectangle rg = new Rectangle(0, 0, width, height);
            Graphics gFrame = Graphics.FromImage(frame);
            int forIndex = 0;
            foreach (Guid gd in res.FrameDimensionsList)
            {
                FrameDimension fd = new FrameDimension(gd);

                //因为是缩小GIF文件所以这里要设置为Time,如果是TIFF这里要设置为PAGE,因为GIF以时间分割,TIFF为页分割 
                FrameDimension f = FrameDimension.Time;
                int count = res.GetFrameCount(fd);
                //ImageCodecInfo codecInfo = GetEncoder(ImageFormat.Gif);
                //System.Drawing.Imaging.Encoder encoder = System.Drawing.Imaging.Encoder.SaveFlag;
                //EncoderParameters eps = null;

                for (int i = 0; i < count; i++)
                {
                    res.SelectActiveFrame(f, i);
                    if (0 == i)
                    {
                        if (forIndex == index)
                        {
                            g.DrawImage(res, rg);
                            bindProperty(res, gif);
                            return gif;
                        }
                        //gif.Save(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + @"/" + Path.GetFileName(path).Replace(".", DateTime.Now.ToString("yyMMddHHmmssfff") + "."), codecInfo, eps);
                    }
                    else
                    {
                        if (forIndex == index)
                        {
                            gFrame.DrawImage(res, rg);
                            bindProperty(res, frame);
                            return frame;
                        }
                        //gif.SaveAdd(frame, eps);
                    }
                    forIndex++;
                }

                //eps = new EncoderParameters(1);
                //eps.Param[0] = new EncoderParameter(encoder, (long)EncoderValue.Flush);
                //gif.SaveAdd(eps);
            }
            //MessageBox.Show("缩放完成!");
            res.Dispose();
            return null;
        }

蓝奏云无密码
https://www.lanzouj.com/i45l3zi


没有编译环境的同学WinGifTool\bin\Debug下WinGifTool.exe可直接运行使用




01.png

免费评分

参与人数 5吾爱币 +5 热心值 +5 收起 理由
z_zz + 1 + 1 谢谢@Thanks!
暴走的绵羊 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
pojie1nd2nd3nd + 1 + 1 谢谢@Thanks!
安倚静轩 + 1 + 1 谢谢@Thanks!
桔梗行伙计 + 1 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

990721830 发表于 2019-11-1 00:35
简单单单 发表于 2019-10-27 15:16
如果是Gifsicle压缩我另一个帖子应该已经实现了
https://www.52pojie.cn/thread-955905-1-1.html
你先 ...

但是好像没有和ezgif网上一样的...
自定义调画质...
只有自动压缩...

还有不知能否做到按照自定义设置大小lossygif算法压制...
 楼主| 简单单单 发表于 2019-10-27 15:16
990721830 发表于 2019-10-2 04:13
https://ezgif.com/optimize
能加入这个里面的优化算法吗?
或者可以用右键文件发送到这个页面...

如果是Gifsicle压缩我另一个帖子应该已经实现了
https://www.52pojie.cn/thread-955905-1-1.html
你先看下
hnicypb 发表于 2019-5-7 11:19
二两酒 发表于 2019-5-7 11:25
感谢分享,支持原创!
jettang 发表于 2019-5-7 11:26
这东东不错,之前帮人P过gif,需要这样的好工具
安倚静轩 发表于 2019-5-7 11:43
可以用到
头像被屏蔽
骨质乌过木 发表于 2019-5-7 11:57
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| 简单单单 发表于 2019-5-7 12:27
骨质乌过木 发表于 2019-5-7 11:57
有成品吗楼主@简单单单

你把附件下载下,这个路径看能直接运行不
WinGifTool\bin\Debug\WinGifTool.exe
不行的话我再补连接
东风破浪 发表于 2019-5-7 15:25
没用过。支持楼主一下。
L__ 发表于 2019-5-7 16:36
感谢分享这么好的工具
tosm 发表于 2019-5-9 09:27
收藏,感谢。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-3-29 07:18

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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