从去年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的更多相关文章

  1. 使用imageMagick 制作圆角矩形和图片加水印

    制作圆角矩形好图片水印都是图片合成的操作 composite -gravity southeast mask175.png  src.jpg  dest.jpg -gravity southeast ...

  2. ImageMagick

    http://blog.csdn.net/lan861698789/article/details/7738383 1.官网 http://www.imagemagick.org/script/ind ...

  3. jffs2文件系统制作

    内核:                linux-3.0 uboot:             2010.09 开发板:             fl2440 交叉编译器:         2011. ...

  4. 时光煮雨 Unity3D实现2D人物动画② Unity2D 动画系统&资源效率

    系列目录 [Unity3D基础]让物体动起来①--基于UGUI的鼠标点击移动 [Unity3D基础]让物体动起来②--UGUI鼠标点击逐帧移动 时光煮雨 Unity3D让物体动起来③—UGUI DoT ...

  5. 时光煮雨 Unity3D实现2D人物动画① UGUI&Native2D序列帧动画

    系列目录 [Unity3D基础]让物体动起来①--基于UGUI的鼠标点击移动 [Unity3D基础]让物体动起来②--UGUI鼠标点击逐帧移动 时光煮雨 Unity3D让物体动起来③—UGUI DoT ...

  6. 使用css3伪元素制作时间轴并且实现鼠标选中高亮效果

    利用css3来制作时间轴的知识要点:伪元素,以及如何在伪元素上添加锚伪类 1)::before 在元素之前添加内容. 2)::after 在元素之后添加内容. 提示:亦可写成 :before :aft ...

  7. ImageMagick的使用

    关于ImageMagick ImageMagick (TM) 是一个免费的创建.编辑.合成图片的软件.它可以读取.转换.写入多种格式的图片.图片切割.颜色替换.各种效果的应用,图片的旋转.组合,文本, ...

  8. 【ImageMagick】ImageMagick命令行工具

    [关于ImageMagick] [命令行工具] [源码安装] [二进位发布版本] [资源配置文件] [相关下载] ImageMagick命令行工具 [ convert | identify | mog ...

  9. [置顶] 修改Android开机画面之rle制作

    第一个动画: Bootloader开机使用的图片是linux.bmp,长高分别是120*120,色度是32,所以可以拿相同格式图片替换,进行编译烧写即可. 第二个图片:内核logo 这个修改方式,我在 ...

随机推荐

  1. java线程API学习 线程池ThreadPoolExecutor(转)

    线程池ThreadPoolExecutor继承自ExecutorService.是jdk1.5加入的新特性,将提交执行的任务在内部线程池中的可用线程中执行. 构造函数 ThreadPoolExecut ...

  2. EF 增删改查 泛型方法、类

    1.定义泛型类 namespace Crm.Data.Logic.Repository{    public abstract class AbstractRepository<TC, T> ...

  3. 并查集(Union-Find)算法介绍

    原文链接:http://blog.csdn.net/dm_vincent/article/details/7655764 本文主要介绍解决动态连通性一类问题的一种算法,使用到了一种叫做并查集的数据结构 ...

  4. Controller和View的交互

    Controller和View的交互 目录 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI ...

  5. mysql_navicat_快捷键

    快捷键能节省很多时间,之前一直研究oracle,plsql有自定义自动补全, 比如 sf 直接回车 可以出现 select * from 等等(参照http://www.cnblogs.com/cph ...

  6. 出现localStorage错误Link解决方案(组态)

    属性-链接-进入-附加依赖-加入sqlite3.lib cocos2d-x-2.2.2\Debug.win32添加的文件夹sqlite3.dll.sqlite3.lib 版权声明:本文博客原创文章.博 ...

  7. centos 之7zip

    首先,我得说几句,我第一次进行了实验. 压缩文件夹html rar压缩   成绩5.18M zip压缩  成绩5.06M 7z压缩   成绩870K 第一种,源代码编译安装 官网下载地址:http:/ ...

  8. STL 源代码分析 算法 stl_algo.h -- binary_search

    本文为senlie原创.转载请保留此地址:http://blog.csdn.net/zhengsenlie binary_search -------------------------------- ...

  9. 用HMM(隐马)图解三国杀的于吉“质疑”

    ·背景 最近乘闲暇之余初探了HMM(隐马尔科夫模型),觉得还有点意思,但是网上的教程都超级枯草,可读性很差,抄来抄去的,一堆公式仍在你面前,谁能搞的懂(但园内的两篇写的还算不错.真才实学).在熬制3天 ...

  10. C++外观设计模式模式(三)

    3.外观模式总结 引入了外观类.解除了客户类与子系统的耦合性.客户类不须要直接操作子系统,而是由外观类负责处理,对client而言是透明的,客户类仅仅须要操作外观类就能够了,符合"迪迷特法则 ...