吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 11290|回复: 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#] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
/// <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, 2025-5-22 11:11

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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