凝结时光: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 这个修改方式,我在 ...
随机推荐
- ACM-凸多边形的计算几何——hrbust1429
凸多边形 称号:http://acm.hrbust.edu.cn/index.php?m=ProblemSet&a=showProblem&problem_id=1429 Descri ...
- TinyMCE实现简单的本地上传
TinyMCE这个东西很多地方再用,不过我以前一直没用过,最近才接触,因为有一套现成的metro风格的皮肤,仅此而已,不过最终如何调用还是我得来实现.其他的都好说,网上的资料一大把一大把的,唯独这个本 ...
- Cocos2d-x游戏开发Lua
1.加入参考库 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2lzZG9tNjA1NzY4Mjky/font/5a6L5L2T/fontsize/400 ...
- WebApi的一种集成测试写法(in-memory)
WebApi的一种集成测试写法(in-memory) 大家是如何对webApi写测试的呢? 1.利用Fiddler直接做请求,观察response的内容. 2.利用Httpclient做请求,断言 ...
- 第19章 解释器模式(Interpreter Pattern)
原文 第19章 解释器模式(Interpreter Pattern) 解释器模式 导读:解释器模式,平常用的比较的少,所以在写这个模式之前在博客园搜索了一番,看完之后那叫一个头大.篇幅很长,我鼓足了劲 ...
- Android中适用于ListView、GridView等组件的通用Adapter
今天随便逛逛CSDN,看到主页上推荐了一篇文章Android 高速开发系列 打造万能的ListView GridView 适配器,刚好这两天写项目自己也封装了相似的CommonAdapter,曾经也在 ...
- MVC提交时验证
第一种 @using (Html.BeginForm("ProdPromotionEdit", "Product", FormMethod.Post, new ...
- Cocos2d-x3.0 文件处理
1.从文件中读取 auto sharedFileUtils = FileUtils::getInstance(); std::string ret; sharedFileUtils->purge ...
- c# WebBrowser开发参考资料
原文:c# WebBrowser开发参考资料 c# WebBrowser开发参考资料,所有资料的采集均来自网上 话说有了WebBrowser类,终于不用自己手动封装SHDocVw的AxWebBrows ...
- Redhat Enterprise server 6.3 构造VPN
一.软体 dkms.kernel_ppp_mppe.pptpd 二.下载软件 wget http://sourceforge.net/projects/poptop/files/mppe%20modu ...