java.io.File oriFile = new java.io.File( "e:/007.jpg");
java.io.File desFile = new java.io.File( "e:/007ssss.jpg");
FileInputStream in = new FileInputStream(oriFile);
JPEGImageDecoder decoder = JPEGCodec.createJPEGDecoder(in);
BufferedImage bi = new BufferedImage(20,100,BufferedImage.TYPE_INT_RGB);
bi = decoder.decodeAsBufferedImage(); FileOutputStream out = new FileOutputStream(desFile);
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(bi);
param.setQuality(1f,false);//质量
JPEGQTable qta = param.getQTable(0);
param.setQTable(1,qta.getScaledInstance(0.05f,true));
encoder.setJPEGEncodeParam(param);
encoder.encode(bi);
java.io.File desFile = new java.io.File( "e:/007ssss.jpg");
FileInputStream in = new FileInputStream(oriFile);
JPEGImageDecoder decoder = JPEGCodec.createJPEGDecoder(in);
BufferedImage bi = new BufferedImage(20,100,BufferedImage.TYPE_INT_RGB);
bi = decoder.decodeAsBufferedImage(); FileOutputStream out = new FileOutputStream(desFile);
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(bi);
param.setQuality(1f,false);//质量
JPEGQTable qta = param.getQTable(0);
param.setQTable(1,qta.getScaledInstance(0.05f,true));
encoder.setJPEGEncodeParam(param);
encoder.encode(bi);
解决的办法很简单只要加上java的命令行参数 -Djava.awt.headless=true 就可以不需要图形环境的支持了。这需要jdk1.4以上的jdk版本。
如果你的unix没有很好的安装了图形环境(比如 x-window) 楼上的代码是不能解决问题的,因为BufferedImage继承了java.awt.Image。所以需要图形环境的支持。
解决的办法很简单只要加上java的命令行参数 -Djava.awt.headless=true 就可以不需要图形环境的支持了。这需要jdk1.4以上的jdk版本。
请我应该将这个参数加在那里啊?我要在WEB上使用应该怎么作呢?谢了
我用tomcat5.0.25做web容器。我是这么做的,文本方式打开bin目录下的批处理文件catalina.bat在最后面的4处 %_EXECJAVA% 处加上 -Djava.awt.headless=true
这是第一处:
%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -Djava.awt.headless=true -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%
java.io.File desFile = new java.io.File( "e:/007ssss.jpg");
FileInputStream in = new FileInputStream(oriFile);
JPEGImageDecoder decoder = JPEGCodec.createJPEGDecoder(in);
BufferedImage bi = new BufferedImage(20,100,BufferedImage.TYPE_INT_RGB);
bi = decoder.decodeAsBufferedImage(); FileOutputStream out = new FileOutputStream(desFile);
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(bi);
param.setQuality(1f,false);//质量
JPEGQTable qta = param.getQTable(0);
param.setQTable(1,qta.getScaledInstance(0.05f,true));
encoder.setJPEGEncodeParam(param);
encoder.encode(bi);
是什么的质量?l