画像のサイズを正確なサイズにサイズ変更し、アスペクトを保持し、PHP内のスペースを埋める
-
13-09-2020 - |
質問
hy、
画像を正確なサイズに変換したいとしましょう。例えば:400x300。トリックは、そのアスペクト比のために画像が400 x 300に収まらない場合、それを黒い境界線でそこに置きます。
900×1200の画像は、そのアスペクト比を保持するために225 x 300に変換され、それから黒い境界線を左右に与え、それを400 x 300にします。
オリジナル写真:
|||||||||||||||||||||||
|||||||||||||||||||||||
|||||||||||||||||||||||
|||||||||||||||||||||||
|||||||||||||||||||||||
|||||||||||||||||||||||
|||||||||||||||||||||||
|||||||||||||||||||||||
.
サイズ変更後、私はこのようなものを見たいです:
_______________________
|+++++++++++++++++++++|
|+++++++++++++++++++++|
|+++++++++++++++++++++|
|+++++++||||||||++++++|
|+++++++||||||||++++++|
|+++++++++++++++++++++|
|+++++++++++++++++++++|
|_____________________|
.
: "+++++++"私はいくつかの色になり、 "||||||||"画像は中央で!
残念ながら、まだコードがありません!
私はこのようなものが欲しい: http://phpthumb.sourceforge.net/demo/demo/phpthumb.demo.demo.php#x22 ありがとう
解決
gd
関数を手に入れよう。 。
imagecreatefrom...
関数の1つを使用して画像を読む必要があります。次に、例えば、 imagecreatetruecolor
を使用して、2番目の画像を作成する必要があります。これは、href="http://php.net/manual/en/function.imagefill.php" real="nofollownoreferrer">あなたの選択の色でを埋めることができます。次に、 imagecopyresampled
を使用して、元のイメージを新しいイメージにコピーします。プロセスでサイズを変更する。いくつかの単純な数学で新しいサイズを計算する必要があります。これは、 getimagesize
< / a>あなたを助けることができます。
あるいは、 ImageMagick クラスを使って演奏します。 gd
には、操作が簡単な場合があります。
幸運のベスト! :)
他のヒント
黒の背景を持つようにスタイルされたDIVを作成し、400 x 300にサイズを付けました。その後、そのDIV内のサイズ変更イメージを表示します。DIVを表示する前に、画像が目的の側面ではないことを確認するためのチェックを含めることができます。
これのようなもの:
<?
$height-ratio = $height / 300;
$width-ratio = $width / 400;
if ($height-ratio == $width-ratio) {
$ratio = $height-ratio;
} elseif ($height-ratio > $width-ratio) {
$ratio = $height-ratio;
echo "<div class='blackbox'>";
} else {
$ratio = $width-ratio;
echo "<div class='blackbox'>";
}
$newHeight = $height / $ratio;
$newWidth = $width / $ratio;
echo "<img src='".$imgSrc."' height='".$newHeight."' width='".$newWidth."' />";
if ($height-ratio != $width-ratio)
echo "</div>";
?>
.
のCSSをサポートしている:
.blackbox {
text-align: center;
background-color: black;
height: 300px;
width: 400px;
}
. 私は幅と高さを設定するのではなく、編集の大ファンで、幅と高さを設定するのではなく、希望するサイズになるように写真のサイズを大きくしています。パフォーマンスは優れており、異なるブラウザがそれを異なる方法でどのように処理するかを心配する必要はありません。
では、画像編集プログラムがない場合はPAINT.NETを取得します。無料でうまく機能します。