JPEG (または GIF/PNG) 画像を取得し、色の量をたとえば 20 に減らす方法を見つけたいと思います。ライブラリやその他の参照を推奨できますか? また、他の言語のソース コードも歓迎します。
6 に答える
Java Advanced Imaging APIを見てください。その API には、減色を行うための多数のアルゴリズムが実装されています。
JAI (Java Advanced Imaging API) はこの作業を行いますが、いくつかの欠点があります。
この API は使いやすいとは言えません。特にメモリ フットプリントが気になる場合は...
IMHO Java は、イメージング タスクに最適なプラットフォームではありません。Flickr などの人気サイトで使用されている素晴らしいコマンド ライン ツールであるImageMagickを試してみてください。コマンドライン ( Runtime.exec() ) またはJava が ImageMagick にブリッジするJmagickを使用して、Java アプリケーションに ImageMagick を統合できます。
これは、ImageMagick に基づいた Java での単純な実装のようです。
http://www.jhlabs.com/ip/filters/index.htmlで画像フィルターを見てみましょう。QuantizeFilterは、あなたが望むことをしているようです。
色の量子化、特にメディアン カットに関するアルゴリズムを探します。これらのキーワードを使用した多くの例を見つけることができます。これを行うためのライブラリには、多くの言語のバインディングを持つImageMagickが含まれています。JMagickは Java フレーバーです。
JAI API がその方法です。現在の JVM のパフォーマンスは、アセンブラ コードに非常に近いものです。私はそれをしたことを知っています。