興味深い質問があります。ビットマップで JPG 画像をデコードする場合、JPG は圧縮形式であるため、非常に多くのメモリを必要とします。したがって、0.5 MB の JPG 画像の場合、ビットマップはほぼ 4 MB になります。私の質問は、画像をアップロードしたい場合、ファイルから読み取ってサーバーに送信できるということです。つまり、ビットマップにロードする必要はありません。誰もこれを試したことがありますか?それは理にかなっていますか?
手伝ってくれてありがとう。
興味深い質問があります。ビットマップで JPG 画像をデコードする場合、JPG は圧縮形式であるため、非常に多くのメモリを必要とします。したがって、0.5 MB の JPG 画像の場合、ビットマップはほぼ 4 MB になります。私の質問は、画像をアップロードしたい場合、ファイルから読み取ってサーバーに送信できるということです。つまり、ビットマップにロードする必要はありません。誰もこれを試したことがありますか?それは理にかなっていますか?
手伝ってくれてありがとう。
はい、これは可能です。サーバーにアップロードするためにjpgをビットマップに変換する必要はありません。
http://loopj.com/android-async-http/のような高レベル API の使用を検討できます。詳細については、「RequestParams を使用したファイルのアップロード」セクションを参照してください。
jpgは、圧縮された画像をファイルに保存するための形式です。これは、イメージ内のすべてのピクセルのカラー値がデータに明示的に存在する生のビットマップ形式よりも少ないメモリしか必要としないため、実用的です。
表示するには jpg ファイルを解凍する必要がありますが、圧縮された jpg ファイルを送信するのが最善の方法です(ビットマップをロードする必要はなく、ファイル内のデータを送信するだけです)。
JPEG 圧縮は非可逆圧縮であることに注意してください。つまり、サイズを縮小すると、元のソース イメージの品質が低下します。(詳しく説明されたウィキペディアのエントリを参照してください: https://en.wikipedia.org/wiki/Jpg )。