我正在尝试创建简单的缩略图生成。我基于Stack Overflow上的另一个问题,但是根据我的需要简化了代码。它应该拍摄一张图像并根据高度缩小它。
function create_thumbnail($original_pic, $intended_heigth){
$info = getimagesize($original_pic);
$actual_width = $info[0];
$actual_height = $info[1];
if($info['mime'] == 'image\jpeg'){
$src = imagecreatefromjpeg($original_pic);
}else{
return false;
}
$ratio = $intended_heigth / $actual_height;
$newheight = $intended_heigth;
$newwidth = $actual_width * $ratio;
$writex = 0;
$writey = 0;
$thumbnail = imagecreatetruecolor($newwidth, $newheight);
imagecopyresized($thumbnail, $src, $writex, $writey, 0, 0, $newwidth, $newheight, $actual_width, $actual_height);
return imagejpeg($thumbnail);
}
然后我试图像这样回复id
<?php $original_pic = "images/info/7/01.jpg"; ?>
<img src="<?php create_thumbnail($original_pic, 90); ?>">
这没有任何作用。 但在原始代码中,以这种方式定义了$ writex $ writex = round(($ mintednded_width - $ newwidth)/ 2); 但我真的不明白这是什么意思。 有什么想法吗?
答案 0 :(得分:1)
您的create_thumbnail
函数具有以下返回语句
return imagejpeg($thumbnail);
如果您阅读了documentation for imagejpeg函数,您将看到它返回一个bool - 是否已成功创建图像。
然后,您使用bool
<img>
值
<img src="<?php create_thumbnail($original_pic, 90); ?>">
您要做的是返回保存生成的缩略图的路径。阅读文档,注意imagejpeg
函数的第二个参数,并使用它返回保存缩略图的路径。
答案 1 :(得分:0)
你错误地使用了这个功能。
此功能可制作缩略图并返回小图像。您可以将此图像存储到文件中,然后在代码中使用指向此新图像的链接。
您应该更改代码的逻辑。
答案 2 :(得分:0)
create image.php write bellow code
<?php
header('Content-Type: image/jpeg');
function create_thumbnail($original_pic, $intended_heigth) {
$info = getimagesize($original_pic);
$actual_width = $info[0];
$actual_height = $info[1];
if ($info['mime'] === 'image/jpeg') {
$src = imagecreatefromjpeg($original_pic);
} else {
return false;
}
$ratio = $intended_heigth / $actual_height;
$newheight = $intended_heigth;
$newwidth = $actual_width * $ratio;
$writex = 0;
$writey = 0;
$thumbnail = imagecreatetruecolor($newwidth, $newheight);
imagecopyresized($thumbnail, $src, $writex, $writey, 0, 0, $newwidth, $newheight, $actual_width, $actual_height);
return imagejpeg($thumbnail);
}
?>
<?php $original_pic = "images/info/7/".$_GET['img']; ?>
<?php create_thumbnail($original_pic, 90); ?>
Now you can call image with other file
<img src="image.php?img=01.jpg">