php教程

超轻量级php框架startmvc

PHP简单创建压缩图的方法

更新时间:2020-03-11 13:53:22 作者:startmvc
本文实例讲述了PHP简单创建压缩图的方法。分享给大家供大家参考,具体如下:<?php//

本文实例讲述了PHP简单创建压缩图的方法。分享给大家供大家参考,具体如下:


<?php
//创建压缩图
function _create_thumbnail($srcFile, $toW, $toH, $toFile="")
{
 if ($toFile == "")
 {
 $toFile = $srcFile;
 }
 $info = "";
 $data = getimagesize($srcFile, $info);
 if (!$data)
 return false;
 //将文件载入到资源变量im中
 switch ($data[2])
 {
 case 1:
 $im = imagecreatefromgif($srcFile);
 break;
 case 2:
 $im = imagecreatefromjpeg($srcFile);
 break;
 case 3:
 $im = imagecreatefrompng($srcFile);
 break;
 }
 //计算缩略图的宽高
 $srcW = imagesx($im);
 $srcH = imagesy($im);
 $toWH = $toW / $toH;
 $srcWH = $srcW / $srcH;
 if ($toWH <= $srcWH)
 {
 $ftoW = $toW;
 $ftoH = (int)($ftoW * ($srcH / $srcW));
 }
 else
 {
 $ftoH = $toH;
 $ftoW = (int)($ftoH * ($srcW / $srcH));
 }
 if (function_exists("imagecreatetruecolor"))
 {
 $ni = imagecreatetruecolor($ftoW, $ftoH); //新建一个真彩色图像
 if ($ni)
 {
 //重采样拷贝部分图像并调整大小 可保持较好的清晰度
 imagecopyresampled($ni, $im, 0, 0, 0, 0, $ftoW, $ftoH, $srcW, $srcH);
 }
 else
 {
 //拷贝部分图像并调整大小
 $ni = imagecreate($ftoW, $ftoH);
 imagecopyresized($ni, $im, 0, 0, 0, 0, $ftoW, $ftoH, $srcW, $srcH);
 }
 }
 else
 {
 $ni = imagecreate($ftoW, $ftoH);
 imagecopyresized($ni, $im, 0, 0, 0, 0, $ftoW, $ftoH, $srcW, $srcH);
 }
 //保存到文件 统一为.png格式
 imagepng($ni, $toFile); //以 PNG 格式将图像输出到浏览器或文件
 ImageDestroy($ni);
 ImageDestroy($im);
}
?>

PHP 压缩图