如何运用java实现flash文件和gif文件的缩放

小弟急求:

基于Java语言,实现图形图像的缩减。

在不影响观看的情况下,减小图形图像的体积。

1、Flash文件的缩小。2、gif文件的缩小。

能给出思路也行,最好是参考代码
[b]问题补充:[/b]
在不影响观看的情况下,减小图形图像的容量,比如大小从165K缩小到80K,分辨率从1024*765缩小到100*50.

朋友..这个问题你算是问对人啦..

我最近也在做这方面的gif图片处理和flash方面的处理.

flash你搜搜ffmpeg和mencode的相关资料.

gif图片处理我帮你整理出来了,主要是用gif4j这个jar包来进行操作.

[code="java"]package com.org.gif4j;

import java.awt.Rectangle;
import java.io.File;
import java.io.IOException;
import com.gif4j.GifDecoder;
import com.gif4j.GifEncoder;
import com.gif4j.GifImage;
import com.gif4j.GifTransformer;

public class demo {
public static void main(String[] args) {
File srcImg = new File("f:/test.gif");
File destImg = new File("f:/t.gif");
demo.getGifImage(srcImg, destImg, 270, 310, true);// 根据需要传参数
}

/**
 * gif图的简单处理
 * 
 * @param srcImg
 * @param destImg
 * @param width
 * @param height
 * @param smooth
 */

public static void getGifImage(File srcImg, File destImg, int width, int height, boolean smooth) {
try {
GifImage gifImage = GifDecoder.decode(srcImg);//创建一个GifImage对象.
// 1.缩放重新更改大小.
GifImage resizeIMG = GifTransformer.resize(gifImage,width, height,smooth);
// 2.剪切图片演示.
// Rectangle rect = new Rectangle(0,0,200,200);
// GifImage cropIMG = GifTransformer.crop(gifImage, rect);
// 3.按比例缩放
// GifImage scaleIMG = GifTransformer.scale(gifImage, 200.0, 200.0, true);//参数需要double型
// 4.其他的方法.还有很多,比如水平翻转,垂直翻转 等等.都是GifTransformer类里面的.
GifEncoder.encode(resizeIMG, destImg);
} catch (IOException e) {
e.printStackTrace();
}
}
}
[/code]

下载gif4j包.网址:http://www.gif4j.com/download.htm#PRO
gif4j很好的对gif图的操作进行了封装.具体的可以看下载后的帮助文件和example

将jar包引入工程..

下载gif4j包.网址[url]http://www.gif4j.com/download.htm#PRO [/url]

[quote]在不影响观看的情况下,减小图形图像的容量,比如大小从165K缩小到80K,分辨率从1024*765缩小到100*50. [/quote]

我的这个方法不是可以实现你的这种需求吗?

GifTransformer.scale()。。。

GifTransformer.resize()。。。。。

这两种你试了么 ?

怎么按你说的那样运行不出来结果呢

不会吧,可以根据图片的本身的大小传递合适的参数吧 .那个包引进去了吗?

最近我也在搞这个,我用的是ImageMagick,一个组件,

现在web应用经常会用到缩略图。然后一旦生成的缩略图小于100px * 100px,一些常用的java包,生成的图片确实有点惨不忍睹。

      现在介绍使用Jmagick的使用,可以生成质量很好的缩略图,当然还有其他很多图像处理的方法。   

    首先jmagick(http://www.yeo.id.au/jmagick/)是ImageMagick(http://www.imagemagick.org/)的java   应用的接口。所以要先安装ImageMagick应用程序,你的java应用才能使用,在主页上你可以轻松找到下载的链接。   

    1。下载jmagick,imagemagick   

    2.安装ImageMagick,网站上有安装方法(windows,unnix),我只在win上做了安装,安装以后把安装目录下所有的dll文件copy到windows/system32/目录下。   

    3。下载的jmagick包含jmagick.jar,jmagick.dll文件,jmagick.dll需要copy到windows/system32/目录下。   

    4。web应用如果部署到tomcat下,那么最好在catalina.bat文件中改变如下设置   

set JAVA_OPTS=%JAVA_OPTS% -Xms256M -Xmx768M -XX:MaxPermSize=128M -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file="${catalina.base}\conf\logging.properties"

    避免heap溢出的问题,参数看你自己的机器而定。(   -Xms256M   -Xmx768M   -XX:MaxPermSize=128M   )   

    5。还要注意如果部署到web应用,你在使用的class里面需要   

          System.setProperty("jmagick.systemclassloader","no");   

        要不然会报出UnsatisfiedLinkError:   no   JMagick   in   java.library.path.     

        实例如下:   

public   void   resize(String   picFrom,String   picTo)   {   
        try   {   
            //   Resize   
            ImageInfo   info   =   new   ImageInfo(picFrom);   
            MagickImage   image   =   new   MagickImage(new   ImageInfo(picFrom));   
            MagickImage   scaled   =   image.scaleImage(100,   86);//小图片文件的大小.   
            scaled.setFileName(picTo);   
            scaled.writeImage(info);   

        }     catch(MagickApiException   ex)   {   

        }     catch(MagickException   ex)   {   

        }   
    }   

注:linux系统下,需要下载另外的包

by:阿飞

2006-06-03

来自
[url]http://topic.csdn.net/t/20060603/15/4798174.html[/url]