2016-06-01 11 views
2

私は、ギャラリーから画像を選択できるアプリに画像アップロードモジュールを持っています。問題は、画像のサイズが10MBまでになることです。非常に大きいですが、アップロードする前にこれらの画像に圧縮技術を適用したいと思います。アンドロイドでアップロードする前の画像圧縮

私はインターネットでいくつかの調査を行い、画像の簡単な最適化を可能にするImageMagick、ImgMinのようなライブラリをいくつか見つけました。バックエンドサーバーの関与がなければ、私のAndroidプロジェクトでそれらを使用できる方法はありますか?

参考文献:

ImgMin https://github.com/rflynn/imgmin

ImageMagickの http://www.imagemagick.org/script/index.php

+0

この方法で試しましたか?画像を 'Base64'形式に変換してください。それから、Stringを取得します。もしStringが大きすぎるとすれば、例えば20メガバイトの部分を分割してアップロードします。もし私があなたにBase64コードを与えることができますしたいです。 –

+0

私はすでにイメージをアップロードするためにS3 sdkを使用しています、それは自動的にチャンクを管理します。問題は、カメラから撮影した画像が大きなサイズになり、最終的には私が欲しくない無駄なデータがたくさん含まれてしまうことです。 ImgMin(私が上で述べたように)は私が実装したいと思う正確なテクニックを使います。 –

答えて

1

あなたが試すことができます簡単なオプションがBitmapクラスからthis方法です。

ビットマップの圧縮形式を選択し、品質またはファイルサイズを最適化することができます。欠点は、圧縮を開始するためにBitmapインスタンスを取得する必要があることです。これは実行したくないことかもしれません。

+0

まさに!また、ビットマップ変換は画質の大幅な損失を引き起こします。これは、それが提供するサイズ圧縮とは交渉できません。 –

+1

@SouravChandraスタンドアロンクライアントにImageMinを使用し、JNIラッパーを提供することができます。それは簡単なスーパーではありませんが、私はそれがあなたのためのオプションかもしれないと思う。もう一つはImageMagickのJavaインターフェイスを試してみることです - あなたが投稿したページにリンクがあります。 –

+0

はい、私はちょうどこれを達成するために多くの仕事の地獄を発見した。 –

関連する問題