2

アップロードされた画像の解像度以下の解像度にアップロード画像のサイズを変更する必要があります。

このような:

  • 解像度 1920x1200 の画像をアップロードした場合
  • スクリプトは、アップロードされた画像を解像度 1680x1050、1440x900、および 1280x800 にサイズ変更する必要があります。

でも:

  • 解像度1680x1050の画像をアップロードした場合
  • スクリプトは、アップロードされた画像の解像度を 1440x900 および 1280x800 に変更する必要があります

解像度を検出する方法、画像のサイズを変更してサーバーに保存する方法は知っていますが、上記の問題のロジックを構築する方法はわかりません。そこに助けが必要です。

4

1 に答える 1

1

このようなことをする必要があります:

// All resolutions that you want to generate
$resolutions = [[1920,1200],[1680,1050],[1440,900],[1280,800]];

// Current image dimensions
list($width, $height) = getimagesize('path/to/image.jpg');

foreach ($resolutions as $res) {
  if ($width <= $res[0] || $height <= $res[1]) continue;
  // logic to generate images at different resolutions
}

寸法が指定された範囲内に収まるまでループしてスキップし、残りの解像度に基づいて異なる画像を生成するという考え方です。

これは、すべての画像の縦横比が同じである場合にうまく機能するため、調整するか、単に幅を確認する必要がある場合があります。

編集:配列を逆にして、低解像度から高解像度にループbreakし、逆の条件で使用することもできます。

于 2013-05-19T00:28:46.890 に答える