3

非常に大きな 5 MB 以上の画像をダウンロードする必要があります。

電話のメモリを節約するために、表示する前に画像をスケーリングすることは承知していますが、大きな画像をダウンロードする際の問題は依然として残っています。

イメージ全体をダウンロードしてからスケーリングするのではなく、イメージの 50% 縮小バージョンをダウンロードするにはどうすればよいですか?

4

7 に答える 7

3

ダウンロード元のサーバーでサポートされている必要があります。

サーバーが自分のものでない場合は、そのサーバーのドキュメントを調べる (またはリバース エンジニアリングする) 必要があります。

サーバーがあなたのものである場合、それは使用されるテクノロジーによって異なります。使用している特定のサーバー側テクノロジの画像操作ライブラリを検索します。


imgur.comの場合、

ここを見てください:http://api.imgur.com/

Imgur では、IP ごとに 1 時間あたり 500 回、登録している場合は 1000 回の通話を行うことができます。アップロード数は 10 倍になります。

画像に関するメタデータは、http: //api.imgur.com/resources_anon#image_hashに記載されています。api.imgur.com/2/image/[hash].xmlまたは のいずれかにアクセスし、応答から(90x90) または(?x640) のapi.imgur.com/2/image/[hash].jsonいずれかを選択します。imgur はホームページのサムネイル (160x160) も生成することに注意してください。これらの URL はimage.links.small_squareimage.links.large_thumbnaili.imgur.com/[hash]b.jpg

大きな画像へのリンクは ですi.imgur.com/[hash].jpg。したがって、リンクがhttp://i.imgur.com/xDpEF.jpgまたはhttp://imgur.com/xDpEFの場合、xDpEF必要なハッシュは です。

于 2012-11-01T11:36:14.233 に答える
2

Web サーバーが縮小バージョンを提供しない場合、一部のイメージの縮小バージョンをダウンロードすることはできません。

それらをホストする Web/サーバー上でスケーリングする必要があります。したがって、問題はJava/Androidではなく、Webサーバー上であり、それに依存しています。

于 2012-11-01T11:34:22.647 に答える
1

ダウンロードする前にサーバーがイメージの縮小をサポートしていない限り、できません。サーバーにそのオプションがない場合、最適なオプションは、BitmapFactory.Options inSampleSize を使用して、ストリームから画像を読み取るときに縮小することです。

于 2012-11-01T11:37:07.610 に答える
0

画像をファイルにダウンロードしてから、withを使用BitmapFactoryBitmapFactory.Optionsて画像のサイズを決定する必要があります。画像サイズから、拡大縮小する量を計算し、もう一度BitmapFactory(with Options)を使用して、拡大縮小されたバージョンの画像を読み込みます。

于 2012-11-01T11:37:31.230 に答える
0

他の回答に加えて、サーバー側に特別なソフトウェアがなくても機能するソリューションが 1 つあります。

画像が JPEG 形式でサーバーに保存されていて、インターレース/プログレッシブ モードを使用している場合、サムネイルを作成するために画像を部分的にダウンロードできます。

この特別なモードは、ダウンロード中にプレビュー イメージを表示するように設計されています。プレビュー画像を圧縮すると、サムネイルとして使用できる画像になる場合があります。

ただし、この方法でサムネイルの読み込みをサポートするライブラリはわかりません。

于 2012-11-01T12:25:38.740 に答える
0

サーバーによって異なります。サーバーはイメージの縮小をサポートする必要があります。

于 2012-11-01T11:43:20.070 に答える
0

サーバーからダウンロードする場合、サーバーは 50% スケールまたは 25% スケールなどの多くの形式でスケーリングされたイメージを持っている必要があるため、それは不可能です。したがって、イメージをダウンロードしている場所からサーバーが維持され、バックエンドでイメージをスケーリングする方法が提供されている場合にのみ可能です。

サーバーからイメージをダウンロードしている場合、イメージをスケーリングするためのバックエンド手順なしでは、サーバーからスケーリングされたイメージを取得することはできません。

于 2012-11-01T11:37:00.680 に答える