2

bitbucket.org/luciad/webp-imageioを Ubuntu で動作させましたが、Windows で動作させることができません。

Ubuntuで私がしていることは次のとおりです。

  1. webp-imageio とlibwebpソース コードをダウンロードします (他のバージョンはgoogle webp ダウンロード リポジトリにあります)。

  2. cmake を使用して libwebp と webp-imageio をコンパイルすると、webp-imageio にCMakefile.txtファイルがあります。多分あなたはそれを変更する必要がありますか?次に、webp-imageio.jarおよびlibwebp-imageio.so.dllWindowsに表示されます)を取得します

  3. Javalibwebp-imageio.soプロジェクトのネイティブ ライブラリの場所とwebp-imageio.jarJava ビルド パスに配置します。

  4. 次に、次のコードを実行します。

File file1= new File("/home/rtm/Desktop/xixi.webp");  
File file2= new File("/home/rtm/Desktop/haha.png");  

System.loadLibrary("webp-imageio");
try {  
    BufferedImage im = ImageIO.read(file1);   
    ImageIO.write(im, "png", file2);  
} catch (IOException e) {  
    e.printStackTrace();  
}  
  1. 次に、cmake と mingw-w64 を使用して、windows (webp-imageio.jarおよびlibwebp-imageio.dll) でコンパイルします。ImageIO.read(file1);ただし、 nullを返すため、これは機能しません。なぜ?

Windows用の私のコードは次のとおりです。

File file1 = new File("D://workspace//demo//Test//unnamed.webp");
File file2 = new File("D://workspace//demo//Test//xixi.png");

System.loadLibrary("webp-imageio");
try {
    //FileUtils.copyFile(file1, file2);
    BufferedImage im = ImageIO.read(file1);
    ImageIO.write(im, "png", file2);
} catch (Exception e) {
    e.printStackTrace();
}

例外スタックは次のとおりです。

java.lang.IllegalArgumentException: image == null!
at javax.imageio.ImageTypeSpecifier.createFromRenderedImage(Unknown Source)
at javax.imageio.ImageIO.getWriter(Unknown Source)
at javax.imageio.ImageIO.write(Unknown Source)
4

1 に答える 1