Golang学习:生成GIF动画
Golang学习:生成GIF动画
很久没有写博客啦,已经毕业了,也快要入职啦,好紧张呀 ,感觉就连实习的弟弟妹妹们都是大佬,我真的瑟瑟发抖。不过,相信自己可以的啦!!!
公司用的是Go语言,因为之前没有接触过,所以还是先看看最基本的部分
今天看到了GIF图片的制作,觉得还挺有意思的
package mainimport ("image""image/color""image/gif""io""log""math""math/rand""net/http""os""time"
)// 调色板
var (palette = []color.Color{color.White, color.Black}
)const (whiteIndex = 0blackIndex = 1
)func main() {rand.Seed(time.Now().UTC().UnixNano())if len(os.Args) > 1 && os.Args[1] == "web" {handler := func(w http.ResponseWriter, r *http.Request) {lissajous(w)}http.HandleFunc("/", handler)log.Fatal(http.ListenAndServe("localhost:8080", nil))return}lissajous(os.Stdout)
}func lissajous(out io.Writer) {const (cycles = 5 // 完整的振荡器变化的个数 xres = 0.001 // 角度分辨率size = 100 // 图像中画布包含[-100,100]nframes = 64 //动画中的帧数delay = 8 // 以10ms为单位的帧间延迟)freq := rand.Float64() * 3.0 // 振荡器的相对频率 yanim := gif.GIF{LoopCount: nframes}phase := 0.0for i := 0; i < nframes; i++ {rect := image.Rect(0, 0, 2*size+1, 2*size+1)img := image.NewPaletted(rect, palette)for t := 0.0; t < cycles*2*math.Pi; t += res {x := math.Sin(t)y := math.Sin(t*freq + phase)img.SetColorIndex(size+int(x*size+0.5), size+int(y*size+0.5), blackIndex)}phase += 0.1anim.Delay = append(anim.Delay, delay)anim.Image = append(anim.Image, img)}gif.EncodeAll(out, &anim)
}
就是这个样子啦,就是演示的图片
这里是运行的代码进入该文件的终端
go build main.go
这里的main.go是我这里的名称,如果你的go文件不是这个名字改成自己的,然后main.exe >1.gif
这样执行了之后,就生成了一张名叫1的gif,名称自己定义
参考:《Go语言程序设计》机械工业出版社
Golang学习:生成GIF动画相关推荐
- Golang学习-基础命令
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. . Golang学习-基础命令 一.go run 用于运行命令源码文件,只能接收一个命令源码文件以及若干个库源码文件作为 ...
- golang学习笔记12 beego table name `xxx` repeat register, must be unique 错误问题
golang学习笔记12 beego table name `xxx` repeat register, must be unique 错误问题 今天测试了重新建一个项目生成新的表,然后复制到旧的项目 ...
- Golang学习(12)——regex包
Golang学习 - regexp 包 ------------------------ // 函数 // 判断在 b(s.r)中能否找到 pattern 所匹配的字符串 func Match(pat ...
- 一顿烤羊腿换来的Golang学习路线
作者:阿秀 阿秀的求职笔记:https://interviewguide.cn 你好,我是阿秀. 这篇学习路线写完其实很久了,不过前段时间又请组内的Go后端资深研发工程师吃了一顿烤羊腿. 向他请教了一 ...
- golang学习笔记(基础篇)
LCY~~Golang学习笔记 一.Go语言开发环境 ##安装Go开发包以及VsCode Go开发包与vscode配置安装教程网址:https://www.liwenzhou.com/posts/Go ...
- Golang学习笔记之GORM基础使用(二)
本文章主要学习GORM的增删查改.若还没有完成数据库和数据表的创建.定义模型以及数据库的连接请先学习本本专栏文章Golang学习笔记之GORM基础使用(一).本文为学习笔记,通过GORM官方中文文档和 ...
- Unity学习日志_动画系统简介
Unity学习日志_动画系统简介 Animation,Legacy动画系统 若要使用Animation,需要在创建Clip之前为物体手动添加Animation组件. Animation组件面板: 属性 ...
- 【视觉高级篇】18 # 如何生成简单动画让图形动起来?
说明 [跟月影学可视化]学习笔记. 动画的三种形式 固定帧动画:预先准备好要播放的静态图像,然后将这些图依次播放,实现起来最简单,只需要为每一帧准备一张图片,然后循环播放即可. 增量动画:就是在每帧给 ...
- R语言ggplot2可视化:使用gganimate包和gapminder包为生成的动画文件gif设置尺寸、分辨率
R语言ggplot2可视化:使用gganimate包和gapminder包为生成的动画文件gif设置尺寸.分辨率 目录
- 生成Gif动画缩略图-Gif动画水印的改进
前面的文章中,实现过Gif动画添加水印,虽然目前还有一些悬而未决的问题有待解决,但对于大多数情况还是挺实用的,看园子里面有人发生成缩略图的文章,将原来的水印部分代码加以改造,实现了从Gif动画生成Gi ...
最新文章
- 【Spring】spring基于注解的声明式事务控制
- MYSQL5-7版本sql_mode=only_full_group_by问题
- 真正的不重复数字实现,像人一样去编程
- 5G NR PUCCH资源配置
- java.io.File.setExecutable(boolean executable) 方法来设置所有者对于此抽象路径名执行权限。
- 探索适用于Apache Spark的Spline Data Tracker和可视化工具(第1部分)
- Tree(HDU-5060)
- qfile.remove 删除已经被加载的文件_Milvus数据管理:删除的实现原理
- 思科网络学习笔记 | 路由概念
- 数据整理——大数据治理的关键技术
- Pytorch3D环境血泪安装史
- 浦瑞克扫地机器人好用吗_爱她就送她浦瑞克扫地机器人
- 超级计算机 人脑,世界第4超级计算机竟被人脑秒成渣,人类的大脑究竟多厉害?...
- 根文件系统(rootfs)理解
- lopa分析_什么是LOPA分析?
- 二十八、动词不定式 2 做表语、宾语、后置定语、状语
- python将汉字转为拼音字母_科学网—[转载]python中文汉字转拼音 - 陈明杰的博文...
- redis实现轮询算法_白话分布式系统中的一致性哈希算法
- 工业互联网·能耗监控暖通空调远程监控系统方案
- google maps