私が目指している解決策は、与えられた数のサイズから最適な画像サイズを選択することです。
かなりランダムな解像度がいくつかあるので、自分の好みのサイズにできるだけ近いサイズの画像を見つけたいと思います。
幅x高さ()のサイズの画像を使用したいとしますpreferredImageSize
。
例:320x200
次の画像サイズを自由に使用できるとします(availableImageSize
)width1 x height1、width2 x height2、...(最大10の異なるサイズ)。
例:474x272、474x310、264x150、226x128、640x365、474x410、480x276、256x144、160x90、320x182、640x365、192x108、240x137、480x276
変数を作成するための一般的なアプローチを開発するために、私はかなり高速に計算するだけでなく、画面上で見栄えのpreferredImageSize
するものになる優れたソリューションを見つけようとしています。
私は次のような画像として画面上で見栄えを良くすると定義します。
- ほとんどアップスケールされていません
preferredImageSize.width / preferredImageSize.height
与えられたアスペクト比( )にできるだけ近い- 大幅にダウンスケールされる可能性があります
- 非常に少量でトリミング/ストレッチされる場合があります
私の最初の(かなり些細な)アプローチ:
使用可能な画像サイズを1回実行し、最小幅のデルタ(abs(preferredImageSize.width - availableImageSize.width)
)を見つけます。次に、その最小のデルタを持つ画像が選択されます(bestFitWidth
)。
それは確かに問題を解決する方法ですが、画面の希望に私の見栄えに間違いなく準拠していません。
テキスト、ソース、リンクが素晴らしいかどうかに関係なく、ヒントはありません。わあ、私の要件(別名希望)がすでに間違った方向に進んでいると思われる場合は、先に進んで、私に知らせてください...
編集:オプションとしてトリミングとストレッチを追加しました-これにより、問題の解決がさらに難しくなると思います。したがって、必要に応じて、方程式から除外してください。