1

JMagick を使用して画像のサイズを変更したい。

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();
        }

    }
}

以下のエラーが発生しています。

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 ビット マシンで実行する代替手段はありますか。

編集

64 ビット JDK を 32 ビットに置き換えたところ、以下のエラーが発生しました。

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)

2回目の編集

上記のコードは、32 ビット マシンで期待どおりに動作します。64 ビット マシンでのみ動作するわけではありません。

提案してください

4

2 に答える 2

0

jmagick.dll を C:\Windows\SysWOW64 に配置して、dll が他の 32 ビット dll にリンクされるようにする必要があります。また、VM パラメーター -Djava.library.path="C:\Windows\SysWOW64" に次のパラメーターを追加します。

于 2013-09-04T02:42:37.027 に答える
0

32 ビット版の JDK を試すことができます。わたしにはできる

于 2013-08-23T13:07:32.367 に答える