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

1

你设置了header('Content-Type: image/jpeg'). 因此,您不能再添加 html 标签。将代码另存为“resizeimage.php”并创建另一个像这样的 html 文件

<div>
    <img src="resizeimage.php" />
</div>
于 2013-10-08T04:52:02.660 回答
0

您在将调整大小的图像显示到标签中时面临的问题是,如果您想以这种方式输出图像,即使用header('Content-Type: image/jpeg'); 条件是在标头之前和imagejpeg($image_p, null, 100)之后不应向浏览器呈现任何内容(意味着没有 HTML 标记甚至空格);行,否则您的图像将不会显示,而是会遇到类似这样的错误:图像.....无法显示,因为它包含错误

所以对你来说,我在下面粘贴示例代码:

<?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 回答