日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

凝结时光:ImageMagick 制作 gif

發布時間:2023/12/19 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 凝结时光: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/$f
6 done 7 8 cd $workDir

6、合成 gif

這里 imageMagick 默認的一個 tick 是1/100s,這里50個 tick,就是50/100,就是半秒??梢愿鶕约旱男枨?#xff0c;多試幾次。

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的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。