2012-04-29 10 views
5

私は現在、ビットマップをpngファイルに書き出しており、ビットマップに読み戻しています。私は、執筆や読書のスピードを向上させる方法を探しています。私はそれらを編集するためにそれらを読んでいるので、画像は無損失である必要があります。ビットマップをファイルから読み書きする最速の方法は?

最悪のパフォーマンスが見られる場所は、実際のBitmapFactory.decode(...)です。

いくつかの質問:
1 NDKを使用してビットマップをファイルから読み取り/書き込みするより早く解決策はありますか?
2. Bitmapをより速くデコードするライブラリがありますか?
3.ビットマップを保存して読み取る最良の方法は何ですか?

+0

いくつかの考え:1. **あなたは**に書き込もうとしていますか?おそらくそうではありません。デコードは非常に高価です。 3.多くの圧縮ソリューションがありますが、私は個人的に9パッチが好きです。 – hwrdprkns

+0

ファイルに言及するために私の質問が更新されました。さて、9パッチは間違いなく動作しませんでした。これらの画像は、9つのパッチを当てることができない図面です。少し速くデコードするタイプのNDKライブラリが必要ですか? :P – Jona

+0

ええと、私はあなたがJPEG画像を持っていれば、画像について何かをあらかじめ知っていなければ、それが得られるほど圧縮されていると思うでしょう... – hwrdprkns

答えて

4

イメージをファイルに読み書きする方法を最高/最速に解決しようとすると、古くなった古いBitmapFactoryが使用されました。私は、NDKを使ってエンコード/デコードを試みましたが、実際には違いはありませんでした。

本来、画像を編集した後に品質を失いたくないので、使用するフォーマットは可逆のPNGでした。

これの主なコンセプトは、エンコーディングとデコードの長さを理解する必要があるということでした。エンコーディングの数字は、画像のサイズやデコードに依存して、300〜600msの上段はわずか10-23msの速さでした。

私は、エンコーディングを必要とするイメージを渡したワーカースレッドを作成し、ユーザーエクスペリエンスに影響を与えずに作業を実行できるようにしたことを理解した上で、完全にエンコードされてファイルに保存される前に、イメージがすぐに必要になった場合に備えて、イメージがメモリにキャッシュされたままになっていました。

関連する問題