凝结时光:ImageMagick 制作 gif
从去年12.12开始,工作日都会从单位的落地窗向外拍一张照片,有点每日打卡的意思。weekday 是一天不落的,weekend 不是每次都到单位,落了几次。
想法来自上学的时候,有同学在同一个地方,拍北洋广场的一年四季,做成 gif,非常漂亮。自己就也想试一下,于是就动手了。
干货开始。
工具:shell、ImageMagick
1、照片采集
手机拍摄,上传网盘。
2、照片整理
# 准备目录
workDir=gifs
mkdir $workDir
mkdir -p $workDir/imgs
mkdir -p $workDir/minImgs # 准备文件
cd $workDir
cp ~/Downloads/aaa/*.jpg imgs/
3、文件名处理
这个是一个特殊的情况,iPhone 拍出来的照片,传到网盘后,文件名是“2014-12-31 084045.jpg”,中间有个空格,在处理的时候有点麻烦,需要把空格处理掉。
cd imgs
for f in `find *.jpg | tr ' ' '_'`
do
mv "`echo $f | tr '_' ' '`" $f
done
4、图片加水印
这里我想的是右上角加上日期的标签,内容可以从文件名里面截取:
水印的坐标需要根据图片的实际情况去设置,对 ImageMagick 用的不多,还没有掌握相对坐标的方式(如果有的话)。
# 当前目录 $workDir/imgs for f in `ls . | grep jpg`
do
echo "current img: "$f
wm_file=${f::}.jpg
wm_text=${f::}
echo "water mark: "$wm_text
convert -fill white -pointsize -draw "text 2700,160'$wm_text'" $f $wm_file > ../log
rm $f
done
5、图片压缩
原始的图片太大,可以适当压缩下:
DPI 设置为400,压缩成原来的25%
# 当前目录 $wordDir/imgs for f in `ls . | grep jpg`
do
convert -density -geometry % $f ../minImgs/$f
done cd $workDir
6、合成 gif
这里 imageMagick 默认的一个 tick 是1/100s,这里50个 tick,就是50/100,就是半秒。可以根据自己的需求,多试几次。
# 当前目录 $workDir convert -delay minImg/*.jpg res.gif 2>>log
最后,上结果。
(超过10M 了 T T)
http://pan.baidu.com/s/1sjuizQP
附全部代码:
#!/bin/sh
if [[ $# != ]]
then
echo "Usage: sh makeGif.sh srcDir"
exit
fi SRCDIR=$
WORKDIR=gifs
mkdir $WORKDIR
mkdir -p $WORKDIR/imgs
mkdir -p $WORKDIR/minImgs # 准备文件
cd $WORKDIR
cp $SRCDIR/*.jpg imgs/ cd imgs
for f in `find *.jpg | tr ' ' '_'`
do
mv "`echo $f | tr '_' ' '`" $f
done # 当前目录 $WORKDIR/imgs for f in `ls . | grep jpg`
do
echo "current img: "$f
wm_file=${f:0:10}.jpg
wm_text=${f:0:10}
echo "water mark: "$wm_text
convert -fill white -pointsize 96 -draw "text 2700,160'$wm_text'" $f $wm_file 2> ../log
rm $f
done # 当前目录 $wordDir/imgs for f in `ls . | grep jpg`
do
convert -density 400 -geometry 25% $f ../minImgs/$f.jpg
done cd .. # 当前目录 $WORKDIR convert -delay 50 minImgs/*.jpg res.gif 2>>log
凝结时光:ImageMagick 制作 gif的更多相关文章
- 使用imageMagick 制作圆角矩形和图片加水印
制作圆角矩形好图片水印都是图片合成的操作 composite -gravity southeast mask175.png src.jpg dest.jpg -gravity southeast ...
- ImageMagick
http://blog.csdn.net/lan861698789/article/details/7738383 1.官网 http://www.imagemagick.org/script/ind ...
- jffs2文件系统制作
内核: linux-3.0 uboot: 2010.09 开发板: fl2440 交叉编译器: 2011. ...
- 时光煮雨 Unity3D实现2D人物动画② Unity2D 动画系统&资源效率
系列目录 [Unity3D基础]让物体动起来①--基于UGUI的鼠标点击移动 [Unity3D基础]让物体动起来②--UGUI鼠标点击逐帧移动 时光煮雨 Unity3D让物体动起来③—UGUI DoT ...
- 时光煮雨 Unity3D实现2D人物动画① UGUI&Native2D序列帧动画
系列目录 [Unity3D基础]让物体动起来①--基于UGUI的鼠标点击移动 [Unity3D基础]让物体动起来②--UGUI鼠标点击逐帧移动 时光煮雨 Unity3D让物体动起来③—UGUI DoT ...
- 使用css3伪元素制作时间轴并且实现鼠标选中高亮效果
利用css3来制作时间轴的知识要点:伪元素,以及如何在伪元素上添加锚伪类 1)::before 在元素之前添加内容. 2)::after 在元素之后添加内容. 提示:亦可写成 :before :aft ...
- ImageMagick的使用
关于ImageMagick ImageMagick (TM) 是一个免费的创建.编辑.合成图片的软件.它可以读取.转换.写入多种格式的图片.图片切割.颜色替换.各种效果的应用,图片的旋转.组合,文本, ...
- 【ImageMagick】ImageMagick命令行工具
[关于ImageMagick] [命令行工具] [源码安装] [二进位发布版本] [资源配置文件] [相关下载] ImageMagick命令行工具 [ convert | identify | mog ...
- [置顶] 修改Android开机画面之rle制作
第一个动画: Bootloader开机使用的图片是linux.bmp,长高分别是120*120,色度是32,所以可以拿相同格式图片替换,进行编译烧写即可. 第二个图片:内核logo 这个修改方式,我在 ...
随机推荐
- java线程API学习 线程池ThreadPoolExecutor(转)
线程池ThreadPoolExecutor继承自ExecutorService.是jdk1.5加入的新特性,将提交执行的任务在内部线程池中的可用线程中执行. 构造函数 ThreadPoolExecut ...
- EF 增删改查 泛型方法、类
1.定义泛型类 namespace Crm.Data.Logic.Repository{ public abstract class AbstractRepository<TC, T> ...
- 并查集(Union-Find)算法介绍
原文链接:http://blog.csdn.net/dm_vincent/article/details/7655764 本文主要介绍解决动态连通性一类问题的一种算法,使用到了一种叫做并查集的数据结构 ...
- Controller和View的交互
Controller和View的交互 目录 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI ...
- mysql_navicat_快捷键
快捷键能节省很多时间,之前一直研究oracle,plsql有自定义自动补全, 比如 sf 直接回车 可以出现 select * from 等等(参照http://www.cnblogs.com/cph ...
- 出现localStorage错误Link解决方案(组态)
属性-链接-进入-附加依赖-加入sqlite3.lib cocos2d-x-2.2.2\Debug.win32添加的文件夹sqlite3.dll.sqlite3.lib 版权声明:本文博客原创文章.博 ...
- centos 之7zip
首先,我得说几句,我第一次进行了实验. 压缩文件夹html rar压缩 成绩5.18M zip压缩 成绩5.06M 7z压缩 成绩870K 第一种,源代码编译安装 官网下载地址:http:/ ...
- STL 源代码分析 算法 stl_algo.h -- binary_search
本文为senlie原创.转载请保留此地址:http://blog.csdn.net/zhengsenlie binary_search -------------------------------- ...
- 用HMM(隐马)图解三国杀的于吉“质疑”
·背景 最近乘闲暇之余初探了HMM(隐马尔科夫模型),觉得还有点意思,但是网上的教程都超级枯草,可读性很差,抄来抄去的,一堆公式仍在你面前,谁能搞的懂(但园内的两篇写的还算不错.真才实学).在熬制3天 ...
- C++外观设计模式模式(三)
3.外观模式总结 引入了外观类.解除了客户类与子系统的耦合性.客户类不须要直接操作子系统,而是由外观类负责处理,对client而言是透明的,客户类仅仅须要操作外观类就能够了,符合"迪迷特法则 ...