分页: 1 / 1

把文件夹里的jpg图片合成成GIF图片

发表于 : 2008-07-16 19:05
yjcong
希望没有错误

enjoy

代码: 全选

#!/bin/bash

#需要安装 imagemagick 

pro=`echo ${0##*/}`

echo "输入GIF的尺寸, 使图片面积最小的长度或宽度为有效参数"
echo "所以, 为了保证效果, 请使用比例相近的图片"
echo "==================================" 
echo "输入GIF的宽度(单位: pixels):"
read wid
#########
echo "输入GIF的长度(单位: pixels):"
read hig
#########
echo "输入GIF的名字:"
read nam_tem 
nam="$nam_tem".gif
dnam="$nam_tem"_temtem
if [ -e "$nam" ]||[ -d "$dnam" ];then
echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"
echo "<<  "$nam_tem" 已存在, 请更换文件名"
echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"
start-stop-daemon --oknodo -K -q -R 30 -n $pro
fi
########
echo "输入frames的间隔(单位: 0.01 second):"
read tim
echo "=================================="

###################################
num=0
for fil in *.jpg *.JPG ; do
((num+=1))
done

if [ "$num" > 20 ]; then 
echo "图片过多, 是否继续?"
echo " 1  yes"
echo " 2  no "
read opt
fi

if [ "$opt" = no ]|| [ "$opt" = 2  ] || [ "$opt" = NO ]; then
start-stop-daemon --oknodo -K -q -R 30 -n $pro
fi
###################################

mkdir "$dnam"

for tem in *.jpg *.JPG ; do
convert $tem -quality 25% -geometry  "$wid"x"$hig" "$dnam"/$tem 
done

cd "$dnam"

########################
check=`ls`
emp=''
if [ "$check" = "$emp" ];then
echo "------------ error ------------"
start-stop-daemon --oknodo -K -q -R 30 -n $pro
fi
########################

 all=" "
 for name in *.jpg *.JPG ;do
 all=$all" -page +0+0 "$name
 done

echo "==============================="
echo "     请稍候"
echo "==============================="
 
 convert -delay $tim  $all  -loop 0 $nam
 mv $nam ..
 cd ..
 rm -fr "$dnam"
 if [ -e "$nam" ];then
 echo "++++++++++++++++++++++++++++++++"
 echo "++   "$nam
 echo "++++++++++++++++++++++++++++++++"
 else
 echo "------------error--------------"
 fi

发表于 : 2008-07-16 19:24
mawith
good

发表于 : 2008-07-16 19:24
lethe
:shock:

发表于 : 2008-07-16 19:26
yjcong
谁试了, 发个图上来看看

发表于 : 2008-07-16 19:41
xiooli
yjcong 写了:谁试了, 发个图上来看看
晕乎哉,你自己的脚本难道没有试试么?

发表于 : 2008-07-16 19:47
eexpress
不是直接convert的吗????

发表于 : 2008-07-16 19:53
yjcong
eexpress 写了:不是直接convert的吗????
是的. 但里面还有很多参数啊,

你办点正事, 帮我看看
viewtopic.php?t=136797&highlight=