javaを使用してWebPをPNGに変換する
WebPはGoogleの画像フォーマットで、javaのクラスライブラリimageioではサポートされていません。現在、オンライン変換やツールのほか、WebP形式を変換するためのサードパーティライブラリは、おおよそ
<スパン
1.linux: Googleのlibwebpはライブラリであり、コマンドラインから呼び出すことができます。
2.Pythonのこと。Python Image Library (PIL)とそのブランチ https://pypi.python.org/pypi/PIL
<スパン
についてよく知らない
3.Java: luciad/webp-imageio https://bitbucket.org/luciad/webp-imageio/src 利用可能であることを確認 (Linux環境)
<スパン この記事では、3つ目の方法について説明します。
linux環境で、google libwebp-0.4.0 を luciad-webp-imageio-2962dd563583 ルートディレクトリに置き、CMakeをインストールし、cmakeを実行します。cmakeが終了したら、上記ルートディレクトリでmakeコマンドを実行すると、javaディレクトリとcディレクトリにそれぞれ.jarと.soファイルが生成されます。.jarを自分のjavaプロジェクトのパスにインポートし、.soファイルをシステムのjavaのパスに入れます。この時点で、あなたのJavaプロジェクトでimageioを使い、webp形式のファイルを読み書きできるようになります。
説明
動作環境:ubuntu
言語: java
例:webpからpngへ
<スパン ステップス
1:以下の3つのファイルパッケージをダウンロードします。
<スパン
1. CMakeインストールパッケージ:cmake-3.1.0-rc2-linux-i386.tar
<スパン
2. Google webp 依存ライブラリ: libwebp-0.4.0.tar.gz 元のアドレスです。
https://developers.google.com/speed/webp/download?hl=zh-cN
3.luciad/webp-imageio project: luciad-webp-imageio-2962dd563583.zip 元のアドレスです。 https://bitbucket.org/luciad/webp-imageio/src
<スパン
上記のリソースを考慮すると、ダウンロードするために壁を越える必要があり、比較的遅いです。私はcsdnに3つのファイルをアップロードしている、ダウンロードに0ポイント。
<スパン
アドレス
http://download.csdn.net/detail/geeklei/8161731
2: コンパイルして webp-imageio.jar と libwebp-imageio.so を取得する。
<スパン 1. Unzip luciad-webp-imageio-2962dd563583.zip.
<スパン 2. libwebp-0.4.0.tar.gz を luciad-webp-imageio-2962dd563583 のルートディレクトリに解凍します。
3. cmake-3.1.0-rc2-Linux-i386.tar を展開します。cmake はすぐに使用できますが、イメージソースからコマンドでダウンロードし、自分でインストールすることも可能です。
4. cmakeが使える状態で、ルートディレクトリでcmake .コマンドを実行します。cmakeと. の間にスペースがあることに注意してください。の間にスペースがあります。
5. cmakeが終了し、makefileファイルが表示されたら、luciad-webp-imageio-2962dd563583のルートディレクトリで、makeコマンドを実行します。
<スパン 6. makeが終了すると、luciad-webp-imageio-2962dd563583のルートディレクトリのjavaフォルダとcフォルダに.jarと.soが表示されます。
<スパン 3つです。
<スパン 1. eclipse で webp-imageio.jar を自分の java プロジェクトにインポートします。
<スパン 2. libwebp-imageio.soをシステムのjavaのパスに入れる。その後、System.out.println(System.getProperty("java.library.path"));の文を使ってプロジェクト内のjavaパスを出力すれば、見逃すことはないでしょう。プリントアウトされたjavaのパスには、複数の、部分的に重複したjavaのパスがあります。
<スパン 3. プロジェクトでImageIOを使用し、webp形式のファイルを読み書きする。
コード
File file1= new File("/home/geeklei/Desktop/640_tp.webp");
File file2= new File("/home/geeklei/Desktop/640a.png");
System.out.println(System.getProperty("java.library.path"));
try {
BufferedImage im = ImageIO.read(file1);
ImageIO.write(im, "png", file2);
} catch (IOException e) {
e.printStackTrace();
}
luciad/webp-imageio プロジェクトの作者に感謝します。 ルシアード また、私の質問に無我夢中で答えてくれたことに感謝します。
---------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------
今朝、誰かがコンパイルしたパッケージをプロジェクトにアップロードしているのを発見しました。私もテストはしていませんが、パッケージも共有します。元のアドレス: https://bitbucket.org/luciad/webp-imageio/downloads
csdnアドレス: http://download.csdn.net/detail/geeklei/8163329
中身は.jar .so .dll
Linux 32/64、Windows 32/64、その他をカバー。
関連
-
Solve モジュールのビルドに失敗しました。Error: ENOENT: no such file or directory エラー
-
java -jarコマンドでパッケージを実行すると、無効または破損したjarfile xxxx.jarが表示される。
-
ジャバアレイ
-
java send https request prompt java.security.cert.について。
-
API の戻り値を処理するために ResponseEntity を使用する
-
Junitのユニットテストエラー
-
Java基礎 - マッピングとQ/A
-
java 365*1000*60*60*24 計算問題
-
アクセス制限の解決方法: ---- in Java
-
注)XXX.javaはチェックされていない、あるいは安全でない操作を行っています。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ブートレイヤーの初期化中にエラーが発生しました java.lang.module.FindException: モジュールが見つかりません
-
ajax コミット リソースの読み込みに失敗しました: サーバーはステータス 400 で応答しました ()
-
無効なメソッド宣言
-
Web Project JavaでPropertiesファイルを読み込むと、「指定されたファイルがシステムで見つかりません」というソリューションが表示されます。
-
Javaジェネリックの深い理解
-
svn: 既にロックされているディレクトリをロックしようとした例外の解決法
-
タイプDateをタイプResolutionに解決することができない
-
Java の例外 #クラスパスが複数の SLF4J バインディングを含んでいます。
-
Mybatisの原理、メリット・デメリット、Hibernateとの比較
-
docker 内から 127.0.0.1 経由でホストにアクセスするとエラーが発生します。接続が拒否されました