2

やあ、

画像を正確なサイズ(例:400x300)に変換したいとします。トリックは、アスペクト比が原因で画像が400x300に収まらない場合は、黒い境界線を付けてそこに配置することです。

900x1200の画像は、アスペクト比を維持するために225x300に変換され、次に左右に黒い境界線が付けられて400x300になります。

元の写真:

|||||||||||||||||||||||  
|||||||||||||||||||||||  
|||||||||||||||||||||||  
|||||||||||||||||||||||  
|||||||||||||||||||||||  
|||||||||||||||||||||||  
|||||||||||||||||||||||  
|||||||||||||||||||||||  

サイズ変更後、次のようになります。

_______________________
|+++++++++++++++++++++|
|+++++++++++++++++++++|
|+++++++++++++++++++++|
|+++++++||||||||++++++|
|+++++++||||||||++++++|
|+++++++++++++++++++++|
|+++++++++++++++++++++|
|_____________________|

the: "+++++++"私は色になりたい、そして "|||||||" 真ん中の画像です!

残念ながら、私はまだコードを持っていません!

私はこのようなものが欲しいです:http: //phpthumb.sourceforge.net/demo/demo/phpThumb.demo.demo.php#x22 ありがとう

4

3 に答える 3

3

画像を操作できるgd機能をよく理解してください。

imagecreatefrom...いずれかの機能を使用して画像を読み込む必要があります。次に、たとえば、を使用して2番目の画像を作成する必要があります。この画像にimagecreatetruecolor、選択した色を入力します次に、を使用して元の画像を新しい画像にコピーしimagecopyresampledます。これにより、処理中にサイズを変更できます。事前にいくつかの簡単な計算で新しいサイズを計算する必要があります。これは、のような関数getimagesizeが役立ちます。

または、ImageMagickクラスを試してみてください。これは、操作gdが簡単な場合とできない場合があります。

頑張ってください!:)

于 2010-07-09T01:57:38.737 に答える
0

背景が黒で、サイズが400x300のdivを作成します。次に、サイズ変更した画像をその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;
}
于 2010-07-09T01:56:55.120 に答える
-2

私は、レンダリング時に幅と高さを設定するのではなく、事前に画像を編集してサイズを変更し、希望のサイズにするのが大好きです。パフォーマンスが向上し、ブラウザごとに処理方法が異なる可能性があることを心配する必要はありません。

したがって、画像編集プログラムがない場合は、Paint.netを入手してください。無料でうまく機能します。

于 2010-07-09T01:54:52.507 に答える