weixin_42298998 2010-06-30 09:05
浏览 228
已采纳

请教tomcat5.5配置MagickImage的问题

我想做一个将上传的图片进行清晰压缩的功能,所以想用MagickImage来实现,google了一下,找了很多资料,也按步骤配置了,可是每次在上传的时候tomcat就自动跳出来。调了好久都没效果,希望有朋友能帮忙一下。以下是我配置的步骤和图片压缩的代码:

1、下载ImageMagick-6.6.2-9-Q16-windows-dll.exe并安装,安装后系统会自动在环境变量path中添加值C:\Program Files\ImageMagick-6.6.2-Q16。

2、将ImageMagick-6.6.2-9-Q16-windows-dll安装目录下的所有.dll文件都拷到C:\WINDOWS\system32下。

3、下载jmagick-win-6.3.9-Q16.zip并解压,解压后,将文件jmagick.dll拷到C:\WINDOWS\system32下和jdk的bin目录下各一份。

4、将jmagick.jar复制到Tomcat下的lib文件夹里 和 所使用项目的WEB-INF下lib文件里 各一份。

5、将jmagick.jar复制一份到jdk\jre\lib\ext目录下(有人说这步骤也可以通过在java脚本中加上一句:static{System.setProperty("jmagick.systemclassloader","no");}来实现)。目前我们是两种方法都做上去的。

6、代码:
//该方法为将图片按比率高清压缩为150*120范围内的缩略图,在上传函数中调用。
//参数:filePath为上传图片的路径,toPath为压缩后图片的路径。
public boolean scale(String filePath, String toPath) throws Exception {
System.setProperty("jmagick.systemclassloader","no");
boolean sf = false;
ImageInfo info = null;
MagickImage image = null;
Dimension imageDim = null;
MagickImage scaled = null;
try {
info = new ImageInfo(filePath);
image = new MagickImage(info);
imageDim = image.getDimension();
float width = imageDim.width;
float height = imageDim.height;
float bl = 1;
float bl_w = width / 150;
float bl_h = height / 120;
if (bl_w >= bl_h) {
bl = bl_w;
}
else {
bl = bl_h;
}
width = width / bl;
height = height / bl;
int new_width = (int) width;
int new_height = (int) height;
scaled = image.scaleImage(new_width, new_height);
scaled.setFileName(toPath);
scaled.writeImage(info);
sf = true;
}
catch (Exception ex) {
sf = false;
}
finally {
if (scaled != null) {
scaled.destroyImages();
}
}
return sf;
}

我按以上方式配置后,每次上传的时候,tomcat5.5就自动跳出消失。
上网找了下,有人说是jvm内存的问题,说要在tomcat/bin/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”

由于我装的tomcat5.5是ext版本的,bin目录下并没有catalina.bat文件,所以我就下载了tomcat5.5.zip版本,从里面的bin目录中拷贝出catalina.bat和setclasspath.bat这两个文件到我的tomcat5.5下面的bin目录下。并将上述语句加到catalina.bat中。

但我这样做了,问题还是存在,还是老问题,一上传就tomcat就跳出来。搞了好久都没能弄好,希望有朋友能帮忙解答一下。谢谢!

  • 写回答

2条回答 默认 最新

  • iteye_8679 2010-07-01 09:33
    关注

    QQ:330800515 我看看能不能帮到你
    我用过5.0 5.5 6.0的还没有遇到你这样的问题

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的
  • ¥15 r语言蛋白组学相关问题
  • ¥15 Python时间序列如何拟合疏系数模型
  • ¥15 求学软件的前人们指明方向🥺
  • ¥50 如何增强飞上天的树莓派的热点信号强度,以使得笔记本可以在地面实现远程桌面连接
  • ¥20 双层网络上信息-疾病传播