web-dev-qa-db-ja.com

ピカソv/sイメージローダーv/sフレコvsグレイド

調査結果:

  1. Picasso v/s ImageLoaderは... の違い
  2. 図書館についての情報 ここにGLIDE ...
  3. 最近、Facebookは Fresco という新しい画像ライブラリをリリースしました。

質問:

  1. Picasso v/s Imageloader v/s Frescoとの違いは何ですか?
  2. いつGlideを使用できますか
  3. どちらが一番良いライブラリです。
  4. 各図書館に独自の意義がある場合、それらは何ですか?
325
Devrath

私はFrescoプロジェクトのエンジニアの一人です。だから私は明らかに偏っています。

しかし、あなたは私の言葉をそれに取り入れる必要はありません。 Fresco、Picasso、UIL、Glide、Volley Image Loaderの5つのライブラリのパフォーマンスを並べて比較できるサンプルアプリをリリースしました。あなたはそれを 私たちのGitHubリポジトリ で手に入れることができます。

私はまた、FrescoがMaven Centralでcom.facebook.fresco:frescoとして利用可能であることを指摘する必要があります。

フレスコ画は、ピカソ、UIL、そしてグライドがまだ持っていない機能を提供します:

  1. 画像はJavaヒープに格納されるのではなく、ashmemヒープに格納されます。中間バイトバッファもネイティブヒープに格納されます。これにより、アプリケーションが使用できるメモリがはるかに多くなります。それはOutOfMemoryErrorsの危険性を減らします。また、ガベージコレクションアプリの処理量が減るため、パフォーマンスが向上します。
  2. プログレッシブJPEG画像は、Webブラウザと同じようにストリーミングできます。
  3. 画像は中央だけでなく、任意の場所でトリミングできます。
  4. JPEG画像はネイティブにサイズ変更できます。これは、画像を縮小しようとしている間のOOMingの問題を回避する。

他にもたくさんありますが( 私たちのドキュメントを参照 )、これらが最も重要です。

185
tyronen

これは非常に意見に基づく質問なので、フィヨルドの作成をやめて簡単な表を作成したことを念頭に置いてください

enter image description here

ライブラリ比較は難しいです。多くのパラメータで、Frescoを除いて、4つすべてがほぼ同じことをしているからです。新しいメモリレベルの最適化がたくさんあるからです。私の経験に基づいての比較を参照してください。

Frescoの使用量が最も少なかったので、答えは現在のエクスプロイトのために使用し理解し続けるにつれて進化するかもしれません。 used personallyは完成したアプリで少なくとも一度はライブラリを使用しています。

*注 - FrescoはWebPアニメーションだけでなくGIFもサポートするようになりました

130
Vrashabh Irde

これらの答えは全く私の意見です

答え

  1. Picassoは使いやすいイメージローダーですが、Imageloaderも同じです。 Frescoは、イメージのロードに別のアプローチを使用しています。まだ使用していませんが、ネットワークからイメージを取得してキャッシュしてからイメージを表示するためのソリューションのように見えます。それからPicasso/Imageloader/Glideのような他の方法が私にはもっとあるネットワーク上から画像を取得してそれらをキャッシュすることも行います。

  2. グライドはピカソといくらか互換性があるように試みます。それらが作成されたとき、ピカソの考え方がHTTP仕様に従っていて、サーバがキャッシングポリシーを決定し、フルサイズをキャッシュし、要求に応じてサイズ変更できるようにします。グライドはHTTP仕様に従うことと同じですが、フルサイズの画像ではなくサイズ変更された画像をキャッシュしたり、RGB_8888ではなくRGB_565で画像を表示するなど、いくつかの異なる仮定をすることによってメモリフットプリントを小さくします。どちらのライブラリもデフォルト設定を完全にカスタマイズできます。

  3. どのライブラリを使用するのが最善かについては、言うのは本当に難しいです。 Picasso、Glide、Imageloaderは尊敬され、よくテストされたライブラリで、すべてデフォルト設定で使いやすいです。 PicassoとGlideの両方とも、画像をロードしてプレースホルダーとエラー画像を持つのに1行のコードしか必要としません。動作をカスタマイズすることもそれほど多くの作業を必要としません。 PicassoやGlideより古いライブラリでもあるImageloaderについても同じことが言えますが、私はそれを使ったことがないのでパフォーマンス/メモリ使用量/カスタマイズについてはあまり言えませんが、githubのreadmeを見るとそれもまた印象的です比較的使いやすく設定が簡単です。したがって、これら3つのライブラリのいずれかを選択する際に、誤った決定をすることはできません。これは、個人的な好みの問題です。フレスコ画のための私の意見は、それは彼らのためにどのようにうまくいくのかを見なければならないので、私たちは別のfacebookライブラリであるということです。 FacebookのようにSDKはまだmavenCentral上で正式にリリースされていません 私は2014年9月以来facebook sdkに慣れていません、そしてそれは彼らが2014年10月にmavenCentralの上に最初のバージョンをオンラインにしたようです。それで我々がそれについて何か良い意見を得ることができる前にそれはしばらく時間がかかるでしょう。

  4. 3つのビッグネームライブラリの間には、大きな違いはないと思います。際立っている唯一のものはフレスコ画ですが、それはそれが異なったアプローチを持っていて、新しくてそして戦闘テストされていないからです。

108
Aegis

フレスコ画 ソース | オフサイト
( - )
- 巨大なサイズの図書館
- ビュー付きのコールバックなし、ビットマップパラメータ
- SimpleDraweeViewはwrap_contentをサポートしていません
- 巨大なサイズのキャッシュ
(+)
- かなり高速の画像ローダー(中小画像用)
- 多くの機能(ストリーミング、描画ツール、メモリ管理など)
- xmlで直接設定する可能性(例えば丸い角)
- GIFのサポート
- WebPとAnimated Webpのサポート


ピカソ ソース | オフサイト
( - )
- インターネットからListViewへの大きな画像の読み込みが遅い
(+)
- 図書館のサイズが小さい
- 小さいサイズのキャッシュ
- 使い方が簡単
- UIがフリーズしない
- WebPのサポート


グライド sources

( - )
- 大きいサイズの図書館
(+)
- キャッシュのサイズが小さい
- 使い方が簡単
- GIFのサポート
- WebPのサポート
- インターネットからListViewへの大きな画像の高速ロード
- UIがフリーズしない
- メモリを再利用してGCイベントを減らすためのBitmapPool


ユニバーサルイメージローダー sources

( - )
- 機能が制限されている
- プロジェクトのサポートは2015年11月27日から停止しています
(+)
- 図書館のサイズが小さい
- 使い方が簡単


SGS2(Android 4.1)で私がテストした(WiFi 8.43 Mbps)
Xamarin用ではなく、Java用の公式バージョン!
2015年10月19日

私はGlideを使うのが好きです。
続きを読む ここ
外部記憶装置(SDカード)へのキャッシュの書き込み方法 Glide付き

104
Volodymyr Kulyk

グライドもピカソも完璧ではありません。 Glideが画像をメモリにロードしてキャッシュを実行する方法は、Picassoがイメージをはるかに速くロードするよりも優れています。さらに、人気のあるOutOfMemoryErrorからアプリを防ぐこともできます。 GIFアニメーションの読み込みは、Glideによって提供される強制終了機能です。とにかくピカソはグライドよりも良い品質で画像をデコードします。

どちらが好きですか?私はとても長い間ピカソを使っていますが、私は今グライドを好むことを認めなければなりません。しかし、私はあなたがビットマップフォーマットをARGB_8888に変更して、グライドがフルサイズの画像と最初にサイズ変更されたものの両方をキャッシュするようにさせることを勧めます。残りはあなたの仕事を素晴らしいものにするでしょう!

  • ピカソとグライドのメソッド数はそれぞれ840と2678です。
  • Glide(v3.5.2)のサイズは約430KBですが、Picasso(v2.5.1)のサイズは約118KBです。
  • Glideはサイズごとにキャッシュされたイメージを作成しますが、Picassoはフルイメージを保存してそれを処理します。
  • グライドはデフォルトでRGB_565でより少ないメモリを使用します。

+1ピカソ用 パレットヘルパー

Picasso vs Glideについて多くの記事があります post

62

ベンチマーク 私は Picasso、Universal Image Loader、そしてGlideの間で共有したい https://bit.ly/1kQs3QN

私がテストを実行していたプロジェクトのために、(Draweeビューのために)レイアウトをリファクタリングしたくないので、Frescoはベンチマークから外れました。

私がお勧めするのは、 Universal Image Loader のカスタマイズ、メモリ消費量、およびサイズとメソッドのバランスのためです。

あなたが 小さなプロジェクトを持っているなら、私はGlide に行くでしょう(あるいはFrescoに試してみてください)。

18
shollmann