首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 其他相关 >

应用jmagick做gif动画的缩略图

2013-03-27 
使用jmagick做gif动画的缩略图imageimage.scaleImage(60, 60)?只能得到第一帧的缩略图,这样就不是动画了

使用jmagick做gif动画的缩略图
image=image.scaleImage(60, 60);

?

只能得到第一帧的缩略图,这样就不是动画了。

需要如下调用才可生成保持动画的缩略图。

import magick.*;/** * Hello world! * */public class App{    public static void main( String[] args )throws Exception    {        MagickImage image = new MagickImage( new ImageInfo( "/home/ubuntu/10261.gif" ) );        MagickImage[] images=image.breakFrames();        for(int i=0;i<images.length;i++){                images[i]=images[i].scaleImage(64,64);        }        image=new MagickImage(images);        image.setImageAttribute( "Dispose","1" );        image.setImageAttribute( "Delay","30" );        image.setFileName("/home/ubuntu/r40.gif");        image.writeImage(new ImageInfo());    }}

?面代码的基本思路就是,将gif的各帧分别生成缩略图,再合成为gif格式的图。当遇到比较大的gif动画时,过程会比较慢。

不过,在我这里的环境下,生成的gif图无法在ie浏览器播放,只能显示静态的第一帧图像。而在其他浏览器和图片查看器中,可以正常播放。

怀疑是jmagick版本问题,这里使用的是jmagick6-6.2.6-0版本。

有时间再测试下:

    在windows环境下是否是这样的问题;在ubuntu inux环境下手工编译(目前使用的是ubuntu的deb包)后运行的情况。

热点排行