当前位置: 首页 > news >正文

自己做的网站项目面试注册装修装饰公司需要多少钱

自己做的网站项目面试,注册装修装饰公司需要多少钱,网站开发需要学习什么,怎样编辑网页gif历史部分介绍请参考上一篇《GIF图片格式详解(一)》, 格式部分详解参考 《GIF图片格式详解(二)》 或直接访问博客地址:https://blog.whatsroot.xyz/2023/12/16/all-about-gif/ 本篇介绍下用于处理gif图…

gif历史部分介绍请参考上一篇《GIF图片格式详解(一)》,

格式部分详解参考 《GIF图片格式详解(二)》

或直接访问博客地址:https://blog.whatsroot.xyz/2023/12/16/all-about-gif/

本篇介绍下用于处理gif图片的命令行工具,方便集成到代码中。

软件使用

首先是ffmpeg,尽管它是一个音视频框架,但是由于视频与动态图天然的联系,ffmpeg在n2.6版本(2015年)就对GIF做了支持,尽管支持图片或者视频转为gif,但是如果原视频或者图片带有透明通道,转换后透明通道会丢失。这个功能直到n4.0(2017年)才开始支持。所以ffmpeg版本低于4.0的linux发行版比如ubuntu18.04均无法转换带透明通道的GIF,需要更新ffmpeg版本或者使用更新的linux发行版。不过尽管n4.0支持透明通道,但是转换效果并不好,会有部分透明边界问题,使用时还是推荐升级到最新版本。

在n4.0中,palattegen filter中开始添加透明通道

diff --git a/libavfilter/vf_palettegen.c b/libavfilter/vf_palettegen.c
index 03de317348..5ff73e6b2b 100644
--- a/libavfilter/vf_palettegen.c
+++ b/libavfilter/vf_palettegen.c
@@ -27,6 +27,7 @@#include "libavutil/internal.h"#include "libavutil/opt.h"#include "libavutil/qsort.h"
+#include "libavutil/intreadwrite.h"#include "avfilter.h"#include "internal.h"@@ -74,6 +75,7 @@ typedef struct PaletteGenContext {struct range_box boxes[256];            // define the segmentation of the colorspace (the final palette)int nb_boxes;                           // number of boxes (increase will segmenting them)int palette_pushed;                     // if the palette frame is pushed into the outlink or not
+    uint8_t transparency_color[4];          // background color for transparency} PaletteGenContext;#define OFFSET(x) offsetof(PaletteGenContext, x)
@@ -81,6 +83,7 @@ typedef struct PaletteGenContext {static const AVOption palettegen_options[] = {{ "max_colors", "set the maximum number of colors to use in the palette", OFFSET(max_colors), AV_OPT_TYPE_INT, {.i64=256}, 4, 256, FLAGS },{ "reserve_transparent", "reserve a palette entry for transparency", OFFSET(reserve_transparent), AV_OPT_TYPE_BOOL, {.i64=1}, 0, 1, FLAGS },
+    { "transparency_color", "set a background color for transparency", OFFSET(transparency_color), AV_OPT_TYPE_COLOR, {.str="lime"}, CHAR_MIN, CHAR_MAX, FLAGS },{ "stats_mode", "set statistics mode", OFFSET(stats_mode), AV_OPT_TYPE_INT, {.i64=STATS_MODE_ALL_FRAMES}, 0, NB_STATS_MODE-1, FLAGS, "mode" },{ "full", "compute full frame histograms", 0, AV_OPT_TYPE_CONST, {.i64=STATS_MODE_ALL_FRAMES}, INT_MIN, INT_MAX, FLAGS, "mode" },{ "diff", "compute histograms only for the part that differs from previous frame", 0, AV_OPT_TYPE_CONST, {.i64=STATS_MODE_DIFF_FRAMES}, INT_MIN, INT_MAX, FLAGS, "mode" },
@@ -250,7 +253,7 @@ static void write_palette(AVFilterContext *ctx, AVFrame *out)if (s->reserve_transparent) {av_assert0(s->nb_boxes < 256);
-        pal[out->width - pal_linesize - 1] = 0x0000ff00; // add a green transparent color
+        pal[out->width - pal_linesize - 1] = AV_RB32(&s->transparency_color) >> 8;}}

使用ffmpeg转换图片并保留透明通道的方法:

ffmpeg -i input.gif -vf "split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" -gifflags +transdiff -y out.gif#注意,只有vf部分是必须的,gifflags只是为了提高编码效率

其次可以使用imagemagick工具进行转换,此工具不仅支持gif动态图,还支持webp动态图,
比如使用imagemagick 6缩放gif则可简单使用:

convert input.gif -resize 300x200 out.gifflags

imagemagic 7版本命令方式有所改变,不过改变不大,这里不再详细讨论

http://www.yayakq.cn/news/277032/

相关文章:

  • 网站模版免费广州的百度推广公司
  • 嘉峪关建设局公告网站网站服务器多少钱一月
  • 广州生物科技网站建设公司商城模板网站模板免费下载
  • wordpress主题的网站wordpress4.0.x
  • 南通做网站的公司有哪些wordpress 子页面 404
  • 网站开发费用会计分录网站开发建站
  • 做淘宝网站用什么软件有哪些seo sem sns的区别
  • 免费网站推荐软件wordpress 标签云集
  • 网站建设客户会问的问题做网站应该注意什么
  • html5 网站开发软件wordpress手机发布文章
  • 如何做网站推广赚钱酷炫网站模板
  • 手机网站这么做链接贺州市住房与城乡建设局网站
  • 怎么做时光网站个人主页免费网站
  • 大连网站设计九即问仟亿科技网站视频插件代码
  • 为什么我自己做的网站百度不到深圳网站建设运营公司
  • 住建网站需多少钱2022年适合小学生的新闻
  • 上海网站制作建设怎么样wordpress编辑文章
  • 网站开发下载seo优化的主要任务
  • 网站开发能进无形资产吗wordpress 主题名称修改
  • 连江县住房和城乡建设局网站wordpress显示时间插件下载
  • 帝国网站做图片轮播网站平台建设调研报告
  • 学网站开发去哪学上海到北京机票
  • 办公室工作绩效 网站建设百度极速版
  • 蛋糕店微网站购买一个网站空间如何可以多个域名使用吗
  • 有经验的中山网站建设二维码网页制作免费网站制作
  • 静态网站挂马玉山建设局网站
  • 网站微信分享链接怎么做的怎么在虚拟主机上建网站
  • 比较好的网站建设哪家好这几年做哪个网站致富
  • 手机怎么做动漫微电影网站pc网站增加手机站
  • 响应式网站建设平台网站怎么做桌面快速链接