最近想做个gif在线制作的网站,所以研究下了imagemagick和graphicsmagick制作gif图片
站已经做出来了:有兴趣的朋友可以先看看
http://www.sosogif.com/make_online.jsp
源码下载地址1:http://www.quzhuanpan.com/home/sourceList.jsp?type=6
源码下载地址2:http://www.quzhuanpan.com/download/checkResult.action?id=30&type=6
以下是制作gif的核心过程,分享给大家,希望喜欢。
@apt-get install imagemagick
convert +profile "" out/ test.gif
@+profile "*":图片中不存储Exif信息,必须使用,否则生成图片过大
convert -colors 100 +profile "" out/ test.gif
@-colors 颜色数:设定图片采用的颜色数,如果是生成png或gif图片应指定这个参数
注解:图片开始变小
convert -resize 200x200 -colors 100 +profile "" out/ test.gif
@-resize 宽x高!:改变尺寸,如果使用惊叹号,表示不保留视觉比例,强行改变尺寸匹配给定的宽和高;如果仅给定宽或者高,如“宽x”或“x高”形式的参数(“x高”与“宽x高”的效果是一样的),则以已知参数为基准按比例改变尺寸
convert -rotate 90 test1.gif heh.gif
@旋转90度
convert -fill white -pointsize 24 -draw "text 10,15 ’sosogif.com’" heh.gif hh.gif
@给图片打上水印,白色,文字坐标在:10x50的位置
安装graphicsmagick
@apt-get install graphicsmagick
@GraphicsMagick图像处理系统使用方法
gm identify test.gif
@显示图像文件详细信息
gm montage -mode concatenate -tile 3x1 00d5154fe8fe11e587cba6a921a498bf-www.dubixiazi.com.jpg 00eac261e90d11e59a56a6a921a498bf-www.dubixiazi.com.jpg 00ed5ea1e90611e587bfa6a921a498bf-www.dubixiazi.com.jpg concatenated.jpg
@将三幅图像和并为一副图像
gm convert 2.png 2.gpg
@格式转换
gm convert -density 288 -geometry 25% 2.gpg 3.jpg
缩小为原先的1/4,并且dpi为288
gm convert "Image.gif[0]" first.gif
@从gif文件中抽取第一帧
gm convert -delay 20 00*.jpg j.gif
@每一侦延时20妙播放gif
gm convert -loop 50 frame*.gif animation.gif
@让动画循环50次
gm convert input.jpg -resize "500x500>" output_1.jpg
@加了>,表示只有当图片的宽与高,大于给定的宽与高时,才进行“缩小”操作,如果不加>,会导致图片被比等放大
gm convert input.jpg -thumbnail "100x100" output_1.jpg
@等比缩图 (缺点:产生白边)
gm convert input.jpg -thumbnail "100x100!" output_2.jpg
@非等比缩图,按给定的参数缩图(缺点:长宽比会变化)
gm convert input.jpg -thumbnail "100x100" -background gray -gravity center -extent 100x100 output_4.jpg
@生成的图片大小是:100x100,还保证了比例,同时没有对图片进行任何裁剪,缺失的部分按指定颜色进行填充
gm convert -colorspace RGB 2.png 22.png
@位深度32 转为24,转完后,图片的颜色会有轻微变化
其他:
ImageMagick中使用+profile "*" 删除图片中不存储附加信息.
JMagick中,使用MagickImage类上的profileImage("*", null)方法,删除图片中不存储附加信息.
ImageMagick中使用-quality控制图片的品质,
JMagick中,使用ImageInfo类上的setQuality(80)方法,控制图片的品质