zoukankan      html  css  js  c++  java
  • GIF动态图片分解,多帧动态图分解成多张静态图片

    体验地址

    • 工具地址 由于挂载在github page上,打开速度会慢一些,请耐心等待或自行解决git网速问题

    背景

    为什么要制作这么一款工具

    最近在做一款表情包的产品,需要将文字生成到gif图片中,并可以控制文字显示的位置,并将不同的文字显示在不同的图片上,只需要提供坐标传给后端就可以了,但是我想直接生成图片出来,通过不断尝试,终于完成了此功能

    分析

    主要实现思路是

    • 将gif动图经过gif库解析成gif实例
    • 遍历获取gif实例的每一帧的canvas,转换成baseURL,再转一份file对象存放起来
    • 将转换后的baseURL通过fabric展示到canvas界面上,并添加文字实现文字任意操作功能
    • 将每一帧图片合成后生成新的gif图片

    使用教程

    工具从上往下一共分为3个区域

    画布区

    将分解的图片和添加的文字显示在画布中

    选择区

    1. 上传图片 直接本电脑中选中文件上传
    2. 填写链接输入框 填写一个线上的gif图片地址,如果图片解析不出来,解决方法是下载图片出来,再使用上方上传,原因是图片不支持跨域
    3. 分段选项 将gif解析出来的图片分成几个区域显示,支持2 3 4
    4. 帧间隔 预览或者生成的gif中每一帧图片的显示间隔时间,最小取值0.02,单位s
    5. 图片大小 生成图片的大小,默认300px,单位px
    6. 预览图片 仅供预览观看,默认宽300px,高自适应
    7. 生成图片 可以下载图片使用

    属性操作区

    • 每一个方格对应画布中每一个区域的文字属性
    • 最后一个方格可以控制操作全部文字
      注: 文字位置不要偏离对应的那张图片中,要不然会出现图片消失或显示不完整

    属性详解

    属性 说明 默认
    帧数 每一段区域图片数量 自动计算,也可点击下方+ -号设置
    左边距 文字距离左边框距离 0
    上边距 文字距离上边框距离 0

    备注

    • 本人是在谷歌浏览器调试开发的,没有考虑任何兼容问题,最好在谷歌浏览器使用
    • 点击生成图片后,可以将生成图片下载出来,如需使用请注意版权问题,如出现版权纠纷,本库概不负责
    • 如有其它问题请下方留言

    特别感谢

    创作不易,如果对你有帮助,请移步gitHub地址给个星星 star✨✨ 谢谢

  • 相关阅读:
    第二周作业
    第一周作业
    抓老鼠啊~亏了还是赚了?
    打印沙漏
    寒假作业2
    我与老师
    自我介绍
    第九周课程总结&实验报告(七)
    第八周课程总结&实验报告(六)
    第七周实验报告(五)&周总结
  • 原文地址:https://www.cnblogs.com/chengfeng6/p/11493905.html
Copyright © 2011-2022 走看看