1

長い間、高さや幅が異常に長い画像の管理で問題に遭遇してきました。

高さと幅を固定すると、伸びたように見えますか?

幅を固定した場合、画像の高さが非常に長い場合も、Web サイト全体が台無しになります。

高さを固定した場合、画像の幅が非常に長い場合も、Web サイト全体が台無しになります。

ローカル ドライブに保存する画像は、比率を維持して保存されますか? ユーザーが画像 1(高さ)*32(幅)をアップロードするとします。彼がこの画像をアップロードすると、ユーザーがアップロードした画像のサイズを高さ:1000px に変更するスクリプトが作成されます (ほんの一例)。

結果の画像は 1000px(高さ)*32000(幅)で、画像が異常に大きいことがわかります。

この画像を 1000px * 1000px のボックスに表示する場合、この画像を表示する最良の方法は何ですか?

4

5 に答える 5

3

32x1 の画像を 1000x1000 のボックスに収まるようにサイズ変更しようとしている場合、高さを 1000 にサイズ変更するべきではありません。代わりに、幅を 1000 に、高さを 1000/32 にサイズ変更する必要があります。

コード例は次のとおりです。

define(MAX_WIDTH, 1000);
define(MAX_HEIGHT, 1000);

if ($cur_width / MAX_WIDTH > $cur_height / MAX_HEIGHT)
{
   $new_width = MAX_WIDTH;
   $new_height = (int) ($cur_height * MAX_WIDTH / $cur_width);
}
else
{
   $new_width = (int) ($cur_width * MAX_HEIGHT / $cur_height);
   $new_height = MAX_HEIGHT;
}

これは、ボックスの寸法に対してどの寸法が「大きい」かをチェックし、$new_width と $new_height を適切に設定します。寸法の 1 つが 0 に切り捨てられるという奇妙なケースを処理するようにしてください (つまり、10000x1 の画像はおそらく 1000x0 になります)。

于 2010-05-17T08:41:07.650 に答える
0

高さと幅を固定すると、伸びたように見えますか?

比率を変えると歪み、サイズを変えると伸びます。

幅を固定した場合、画像の高さが非常に長い場合も、Web サイト全体が台無しになります。

元の xy 比率を維持したまま、画像がスケーリングされます。これが「ウェブサイトを台無しにする」かどうかは、コンテキストによって異なります。

高さを固定した場合、画像の幅が非常に長い場合も、Web サイト全体が台無しになります。

同上

これを修正する最良の方法は何ですか?

それは多くの要因に依存しますが、特に画像の目的が何であるかは重要です。はい、再びコンテキストに戻ります。

あなたが達成しようとしていることについていくつかの仮定を立てる場合、基本的に2つのオプションがあります。

  • 画像をトリミングします(おそらくスケーリング後)
  • 画像のxy比率を計算し、それを配置したいスペースのxy比率と比較し、それを使用して(アスペクト比を維持しながら)スペースの幅または高さにスケーリングするかどうかを決定しますスペース。
于 2010-05-17T08:07:47.923 に答える
0

出力画像を特定の長方形に収める (縦横比を維持する) ことはどうでしょうか?

于 2010-05-17T08:08:24.253 に答える
0

私の理解が正しければ、比率を維持したいでしょう。画像ライブラリを使用して、高さまたは幅のいずれかで画像を拡大縮小し、比率を維持してみませんか。

于 2010-05-17T08:09:03.270 に答える
0

divとともに使用できますoverflow: hidden;

于 2010-05-17T08:11:21.543 に答える