凝结时光:ImageMagick 制作 gif
从去年12.12开始,工作日都会从单位的落地窗向外拍一张照片,有点每日打卡的意思。weekday 是一天不落的,weekend 不是每次都到单位,落了几次。
想法来自上学的时候,有同学在同一个地方,拍北洋广场的一年四季,做成 gif,非常漂亮。自己就也想试一下,于是就动手了。
干货开始。
工具:shell、ImageMagick
1、照片采集
手机拍摄,上传网盘。
2、照片整理
1 # 准备目录 2 workDir=gifs 3 mkdir $workDir 4 mkdir -p $workDir/imgs 5 mkdir -p $workDir/minImgs 6 7 # 准备文件 8 cd $workDir 9 cp ~/Downloads/aaa/*.jpg imgs/
3、文件名处理
这个是一个特殊的情况,iPhone 拍出来的照片,传到网盘后,文件名是“2014-12-31 084045.jpg”,中间有个空格,在处理的时候有点麻烦,需要把空格处理掉。
1 cd imgs 2 for f in `find *.jpg | tr ' ' '_'` 3 do 4 mv "`echo $f | tr '_' ' '`" $f 5 done
4、图片加水印
这里我想的是右上角加上日期的标签,内容可以从文件名里面截取:
水印的坐标需要根据图片的实际情况去设置,对 ImageMagick 用的不多,还没有掌握相对坐标的方式(如果有的话)。
1 # 当前目录 $workDir/imgs 2 3 for f in `ls . | grep jpg` 4 do 5 echo "current img: "$f 6 wm_file=${f:0:10}.jpg 7 wm_text=${f:0:10} 8 echo "water mark: "$wm_text 9 convert -fill white -pointsize 96 -draw "text 2700,160'$wm_text'" $f $wm_file 2> ../log 10 rm $f 11 done
5、图片压缩
原始的图片太大,可以适当压缩下:
DPI 设置为400,压缩成原来的25%
1 # 当前目录 $wordDir/imgs 2 3 for f in `ls . | grep jpg` 4 do 5 convert -density 400 -geometry 25% $f ../minImgs/$f6 done 7 8 cd $workDir
6、合成 gif
这里 imageMagick 默认的一个 tick 是1/100s,这里50个 tick,就是50/100,就是半秒。可以根据自己的需求,多试几次。
1 # 当前目录 $workDir 2 3 convert -delay 50 minImg/*.jpg res.gif 2>>log
最后,上结果。
(超过10M 了 T T)
http://pan.baidu.com/s/1sjuizQP
附全部代码:
1 #!/bin/sh 2 if [[ $# != 1 ]] 3 then 4 echo "Usage: sh makeGif.sh srcDir" 5 exit 1 6 fi 7 8 SRCDIR=$1 9 WORKDIR=gifs 10 mkdir $WORKDIR 11 mkdir -p $WORKDIR/imgs 12 mkdir -p $WORKDIR/minImgs 13 14 # 准备文件 15 cd $WORKDIR 16 cp $SRCDIR/*.jpg imgs/ 17 18 cd imgs 19 for f in `find *.jpg | tr ' ' '_'` 20 do 21 mv "`echo $f | tr '_' ' '`" $f 22 done 23 24 # 当前目录 $WORKDIR/imgs 25 26 for f in `ls . | grep jpg` 27 do 28 echo "current img: "$f 29 wm_file=${f:0:10}.jpg 30 wm_text=${f:0:10} 31 echo "water mark: "$wm_text 32 convert -fill white -pointsize 96 -draw "text 2700,160'$wm_text'" $f $wm_file 2> ../log 33 rm $f 34 done 35 36 # 当前目录 $wordDir/imgs 37 38 for f in `ls . | grep jpg` 39 do 40 convert -density 400 -geometry 25% $f ../minImgs/$f.jpg 41 done 42 43 cd .. 44 45 # 当前目录 $WORKDIR 46 47 convert -delay 50 minImgs/*.jpg res.gif 2>>log
转载于:https://www.cnblogs.com/YFYkuner/p/4278983.html
凝结时光:ImageMagick 制作 gif相关推荐
- 使用 ImageMagick 制作电影海报封面效果的照片
<ZIPPER 拉链>电影海报 昨天因为偶然的原因看到电影<ZIPPER 拉链>的封面图片,超喜欢这种有颗粒感的照片.其实小林的微信头像也是类似颗粒感(或称像素.点阵)效果的单 ...
- R语言动态可视化:制作历史全球平均温度的累积动态折线图动画gif视频图
在某些情况下,你可能希望通过在每帧中添加数据并保留先前添加的数据来进行动画处理.最近我们被客户要求撰写关于动态可视化的研究报告,包括一些图形和统计输出. 现在,我们将通过制作点线图的动画来探索. 以下 ...
- R语言:感知机模型(一)
Hello,大家好!最近事情太多,导致这次停更时间有点长了,但是经过了这半年的学习,也学了不少东西,思考后决定,先把李航的<统计学习>这本书上的算法一一代码实现一下,来检测一下是否真的学会 ...
- python绘制动态模拟图
动图 很多时候我们绘图不仅仅是绘制最终的统计结果图,而是想看看在不同参数不同时刻下的连续图形,这个在仿真模拟的时候相当有用.比如机器学习中,参数的变化导致的变化,比如我最近做的库存水平变化模拟等.如果 ...
- MYSQL圆角矩形表示_android 利用Bitmap获取圆角矩形、圆形图片
1.在很多时候,我们要显示图片资源,需要将他的资源显示为圆角的:示例源码如下: public static Bitmap getRoundedCornerBitmap(Bitmap bitmap,fl ...
- DVD影碟特色功能大展
作 者:sherlock 来 源:PCPOP 发布时间:2005-1-24 人气指数:12098 类 别:DVD常识 关键词: 简 介: 从经典帖子<要X片么?>说开去 在文章开始之前,先 ...
- 时光穿梭机特效如何制作?建议试试这个时光机穿梭工具
时光机特效(Time Machine Effect)是一种通过编辑软件创造的图像效果,它可以让您的照片看起来像是从过去或未来穿越而来的.这种效果是通过改变图像的颜色.对比度.曝光和色调等参数来实现的. ...
- arduino摄像头监控_如何使用Arduino和Pusher制作实时光监控器
arduino摄像头监控 by Neo Ighodaro 由新Ighodaro 如何使用Arduino和Pusher制作实时光监控器 (How to make a realtime light mon ...
- ImageMagick windows下的安装和gif动图制作
一.什么是Imagemagick? ImageMagick是一款免费开源跨平台的图片编辑软件,支持 Linux,Windows,Mac OS X,iOS和Android.既可以通过命令行使用,也可以通 ...
最新文章
- python输入字符串从大到小排列_791. 自定义字符串排序(Python)
- OD命令大全(OllyDbg命令)
- 【AI白身境】学AI必备的python基础​​​​​​​
- linux 查看用户上次修改密码的日期
- 【转】VS编译环境命令窗口中的命令
- 拓端tecdat|R语言中的Nelson-Siegel模型在汇率预测的应用
- MongoDB健壮集群——用副本集做分片
- UI组件DevExpress WinForm入门指南 - DialogService服务
- 微型计算机工作原理详细,微型计算机基本工作原理.ppt
- 联想thinkpad如何关闭触摸板
- 探讨PHP实现站内搜索引擎的具体方法
- 两个服务器微信消息模板发不出去,小程序模板消息调用send大部分情况下发送不出去,但有时又可以发送,什么情况?...
- 完爆面试官!2021Java高频精选面试题讲解
- 威盛wm8880 android4.2系统,还能更低吗? 威盛推出249元平板新芯片组
- 嵌入式工程师求职回忆录~
- pip查看安装包的可安装版本
- 聚苯乙烯/超高分子量聚乙烯合金包覆多孔SiO复合微球/聚苯乙烯微球载金属卟啉的研究
- PTA 7-1 宿舍谁最高?(20分)
- 温暖别人就是温暖自己
- 搭建redis集群-(伪分布式)
热门文章
- 单例模式(singleton)解析例子
- 洛谷 题解 P4955 【[USACO14JAN]Cross Country Skiing 越野滑雪】
- Ellex激光器参数与激光消融手术风险的关系
- 最大池化层和平均池化层图解
- python2.x环境下unicode乱码转中文显示的2种解决方案总结
- ext不能选中复制属性_复制拷贝文件不怕再出错,一个超级好用的小工具,支持多线程工作...
- 计算机高新办公软件应用,OFFICEXP全国计算机信息高新技术考试办公软件应用
- myeclipse去除jsp校验错误
- 搭建express框架
- ​Linux下C如何调用PCI Lib函数