首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >利用JMagick调整图像大小

利用JMagick调整图像大小
EN

Stack Overflow用户
提问于 2013-08-23 13:01:15
回答 2查看 5.5K关注 0票数 1

我想使用JMagick来调整图像的大小。

代码语言:javascript
复制
import magick.ImageInfo;
import magick.MagickImage;

public class JMagicInfoa {
    public static void main(String args[]){
    try{
        ImageInfo origInfo = new ImageInfo(args[0]); //load image info
        MagickImage image = new MagickImage(origInfo); 
        image = image.scaleImage(1000, 1000);
        image.setFileName(args[1]); //give new location
        image.writeImage(origInfo);
        }catch (Exception e) {
            e.printStackTrace();
        }

    }
}

我正在经历以下错误:

代码语言:javascript
复制
Exception in thread "main" java.lang.UnsatisfiedLinkError: D:\Program Files\ImageMagick-6.8.6-Q16\jmagick.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform
    at java.lang.ClassLoader$NativeLibrary.load(Native Method)
    at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1778)
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1703)
    at java.lang.Runtime.loadLibrary0(Runtime.java:823)
    at java.lang.System.loadLibrary(System.java:1030)
    at magick.MagickLoader.<clinit>(MagickLoader.java:13)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at java.lang.Class.newInstance0(Class.java:355)
    at java.lang.Class.newInstance(Class.java:308)
    at magick.Magick.<clinit>(Magick.java:21)
    at JMagicInfo.JMagicInfoa.main(JMagicInfoa.java:10)

我搜索了64位的JMagick.dll,但是找不到任何地方。

有没有其他方法可以在64位机器上运行这个程序呢?

编辑

我用32位替换了64位JDK,现在遇到了以下错误:

代码语言:javascript
复制
java.lang.UnsatisfiedLinkError: D:\Program Files\ImageMagick-6.8.6-Q16\jmagick.dll: %1 is not a valid Win32 application
    at java.lang.ClassLoader$NativeLibrary.load(Native Method)
    at java.lang.ClassLoader.loadLibrary1(Unknown Source)
    at java.lang.ClassLoader.loadLibrary0(Unknown Source)

二次编辑

以上代码在32位机器上正常工作.它不只是在64位的机器上工作。

请建议

EN

回答 2

Stack Overflow用户

发布于 2013-08-23 13:07:32

您可以尝试使用32位版本的JDK。对我来说很管用

票数 0
EN

Stack Overflow用户

发布于 2013-09-04 02:42:37

您应该将jmagick.dll放在C:\Windows\SysWOW64 64中,以便dll将链接到其他32位dll。还在VM参数-Djava.library.path=“C:\Windows\SysWOW64 64”中添加以下参数

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18403559

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档