65.9K
CodeProject 正在变化。 阅读更多。
Home

PHP 中的缩略图。

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.36/5 (6投票s)

2008 年 8 月 18 日

CPOL
viewsIcon

35549

downloadIcon

737

使用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);
}
© . All rights reserved.