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);
}


