0

div タグで画像のサイズ変更コードが機能しない。PHP にコードがありますが、サイズ変更後に div タグに画像が表示されませんでした。この問題を解決するのに役立ちます。

// The file
$filename = 'Pictures/DSC_0039 (2).jpg';

// Set a maximum height and width
$width = 200;
$height = 200;

// Content type
header('Content-Type: image/jpeg');

// Get new dimensions
list($width_orig, $height_orig) = getimagesize($filename);

$ratio_orig = $width_orig/$height_orig;

if ($width/$height > $ratio_orig) {
   $width = $height*$ratio_orig;
} else {
   $height = $width/$ratio_orig;
}

// Resample
$image_p = imagecreatetruecolor($width, $height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);

// Output
imagejpeg($image_p, null, 100);
?>
</div>
4

2 に答える 2

0

サイズ変更された画像をタグに表示する際に直面している問題は、この方法で画像を出力したい場合、つまりheader('Content-Type: image/jpeg');を使用することです。条件は、ヘッダーの前とimagejpeg($image_p, null, 100);の後に、何も (HTML タグや空白さえも) ブラウザーにレンダリングしないことです。そうしないと、画像が表示されず、代わりに次のようなエラーが発生します: The image..... cannot be displayed because it contains errors .

だからあなたのために、私は以下のサンプルコードを貼り付けています:

<?php
// The file
$filename = 'Koala.jpg';

// Set a maximum height and width
$width = 200;
$height = 200;



// Get new dimensions
list($width_orig, $height_orig) = getimagesize($filename);

$ratio_orig = $width_orig/$height_orig;

if ($width/$height > $ratio_orig) {
   $width = $height*$ratio_orig;
} else {
   $height = $width/$ratio_orig;
}

// Resample
$image_p = imagecreatetruecolor($width, $height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);


// Output
imagejpeg($image_p, "resized_img.jpg", 100);//in this function the second parameter is the filename of the new resized image
?>
<img src="resized_img.jpg" />
于 2013-10-09T11:33:31.140 に答える