web-dev-qa-db-ja.com

モバイルアプリケーションの画像サイズのベストプラクティス

IPhone/iPadおよびAndroid携帯電話を対象とするモバイルアプリケーションを作成しています。アプリケーションには、ユーザーが写真を撮ってサーバーにアップロードし、後でユーザーがそれらの写真を見ることができますモバイルデバイスで(必ずしも自分の写真ではないため、AndroidユーザーはiPhoneで撮影した写真を見ている可能性があります)。

ほとんどのユースケースに対応できるように、写真を保存するサイズはどれですか? iPadは1.333 W/Hで、ほとんどの携帯電話は1.5または1.333 W/Hで、まれに1.666 W/Hです。具体的には:

iPad:1024x768、iPad3:2048x1536、iPhoneおよびその他の電話:960x640、480x320、800x480。

管理しやすくするために、いくつかの特定の画像サイズを決定し、それらのサイズで写真を保存する必要があります。技術的な面での助けを本当に求めていません。サーバー側などで画像のスケーリングを行うことができます。画像サイズの構築に取りかかる前に、画像サイズに関する推奨事項/ベストプラクティス/教訓を探しています。

  • ほとんどのユースケースに対応するために、どのサイズで写真を保存する必要がありますか?
  • 転送時間を節約するために、サーバーにアップロードする前にクライアント側のスケーリングをお勧めしますか(たとえば、2048x1536 iPadの写真を縮小する)、または常にオリジナルを転送する必要がありますか?
  • 互換性のない画像サイズ(Androidデバイスなど)でiPadで撮影した画像を表示する)を処理するにはどうすればよいですか?クライアントに送信する前にサーバーでそれらの画像を事前にカットする必要がありますかクライアントの電話は画像のサイズ変更を処理しますか?
  • UIの問題もあります。写真以外のページには、ナビゲーション用の1つまたは2つのボタンがあります。写真を保存するときに同じアスペクト比を維持しながら、フルスクリーンサイズよりも小さいものを選ぶべきですか?

これらの質問のいくつかには答えがなく、答えは相対的であることがわかっていますが、意見を聞きたかったのです。ありがとう。

41
cetioren

Androidの場合、ここから始めるのが最適だと思います。標準の画面サイズや、可能な限り最高の品質を維持しながら画像を表示する方法など、多くの情報があります。

http://developer.Android.com/guide/practices/screens_support.html

また、サーバーで可能な限り多くの画像操作を行うことをお勧めします。メモリの制約と断片化により、画像はAndroidで動作するのが苦痛です。 (ありがたいことに、Exifデータを誤って記録する電話にはまだ出会っていませんが、Exifデータが存在しても驚かないでしょう...)。電話に頼るほど、チャンスが増えます。メーカーがラッパーを配置したり、メディアの処理方法をカスタマイズしたりすることによるエラー。

表示方法については、理想的には、バックエンドがさまざまなサイズ変更を既に行っている場合、画像を要求するときに画面密度を含め、開発者ガイドに基づいて最適なサイズを送信できます。差異を最小限に抑えたい場合は、少なくとも携帯電話ではmedまたはhigh density、タブレットでは超高密度をサポートしてください。

ちょうど私の2セント、多くの意見があると確信しています。がんばろう。

11
MattDavis

完全な答えはありませんが、いくつかの考えがあります...

1)アップロードする前に画像サイズを小さくすることをお勧めします。私があなたのアプリケーションを使用していて、4メガの写真をアップロードしなければならなかった場合、私はあなたのアプリケーションを使用したいたびに、おそらく合格するでしょう。そして、私たちが前進するにつれて、カメラ付き携帯電話の点ではるかに優れた技術に打撃を与えています。 Nokiaは41メガピクセルのカメラをリリースしましたが、かなり大きな画像が作成されると思います。ユーザーが4〜6 MBのイメージをダウンロードする必要もありません。ユーザーの視点からのいくつかの考え。

2)画像を切り取りません。画像のどの部分が重要でないかを必ずしも知っているわけではないので、どこで切り取るかをどのようにして知るのでしょうか?それに応じて携帯電話で写真のサイズを調整し、写真を拡大して、より大きなサイズで物事を見ることができるようにします。

3)ボタンを非表示にするUIを作成することができます。本当に単純なもの(単純に前後に進むなど)がある場合は、ジェスチャーコントロール(スワイプ)を使用してアプリケーション内を移動できます。使用中は一時的にスペースを占有するスライド式の引き出しとメニューを実装できますが、メインコンテンツ(この場合は写真)を見るときにスペースを取り戻すことができます。通常、ボタンを非表示にすることはうまく機能せず、ユーザーはナビゲートできるボタンを探したり検索したりするようですが、Androidギャラリーはメニュー+スワイプのみで問題なく動作します。本当に知っている人。

6
Gophermofur