PHP 中的缩略图。






3.36/5 (6投票s)
使用PHP创建缩略图。
引言
有时,我们需要改变图像大小。 我们将在这里看到如何使用PHP做到这一点。
使用代码
这是我们将使用的主要函数
function thumbnail_image($original_file_path, $new_width, $new_height, $save_path="")
参数:
$original_file_path
:原始图像的路径$new_width
:缩略图的宽度$new_height
:缩略图的高度$save_path
:创建的缩略图的路径(如果您跳过此步骤,缩略图将保存在原始图像的文件夹中,文件名为thumbnail.*)
Returns:
此函数为void函数,因此不返回任何值。
以下函数在示例中创建缩略图
<?php
require_once("thumbnail.php");
thumbnail_image("source.jpg","320", "200", "");
?>
上面的示例在source.jpg内部创建了一个320*200的thumbnail.jpg图像。
它是如何工作的
我使用PHP函数getimagesize
获取图像信息。
$imgInfo = getimagesize($original_file_path);
$imgExtension = ""; //extension of original image
switch ($imgInfo[2])
{
case 1:
$imgExtension = '.gif';
break;
case 2:
$imgExtension = '.jpg';
break;
case 3:
$imgExtension = '.png';
break;
}
如果$save_path
等于""
,则缩略图文件将为"thumbnail".$imgExtension
。
if ($save_path=="") $save_path = "thumbnail".$imgExtension ;
以下是如何获取原始图像的宽度和高度以及创建缩略图图像对象
// Get new dimensions
list($width, $height) = getimagesize($original_file_path);
// Resample
$imageResample = imagecreatetruecolor($new_width, $new_height);
if ( $imgExtension == ".jpg" )
{
$image = imagecreatefromjpeg($original_file_path);
}
else if ( $imgExtension == ".gif" )
{
$image = imagecreatefromgif($original_file_path);
}
else if ( $imgExtension == ".png" )
{
$image = imagecreatefrompng($original_file_path);
}
imagecopyresampled($imageResample, $image, 0, 0, 0, 0, $new_width,
$new_height, $width, $height);
最后,创建缩略图并保存它
if ( $imgExtension == ".jpg" )
{
imagejpeg($imageResample, $save_path);
}
else if ( $imgExtension == ".gif" )
{
imagegif($imageResample, $save_path);
}
else if ( $imgExtension == ".png" )
{
imagepng($imageResample, $save_path);
}