php 生成图片缩略图-大图生成小图片
<?php
/*
函数:生成缩略图
MakeBuild("images/a.jpg","news/b.jpg","100");
参数:
echo $BuildFile; 原图 带路径
echo $newFile; 生成的缩略图 带路径
echo $File_width; 缩略图宽度值
echo $File_height; 缩略图高度值 (默认为宽度的比例值)
echo $rate; 缩略图象品质;
*/
function MakeBuild($BuildFile, $newFile, $File_width, $File_height = 0, $rate = 1000) {
if (!is_file($BuildFile)) {
$this->msg("文件 " . $BuildFile . " 不是一个有效的图形文件! 系统无法生成该文件的缩略图!");
return false;
}
$data = GetImageSize($BuildFile);
switch ($data[2]) {
case 1:
$im = @ImageCreateFromGIF($BuildFile);
break;
case 2:
$im = @ImageCreateFromJPEG($BuildFile);
break;
case 3:
$im = @ImageCreateFromPNG($BuildFile);
break;
}
if (!$im) {
return false;
} else {
$srcW = ImageSX($im); // 取得原图宽度;
$srcH = ImageSY($im); // 取得原图高度;
$dstX = 0;
$dstY = 0;
if ($File_height == 0) {
$File_height = $File_width / $srcW * $srcH;
}
if ($srcW * $File_height > $srcH * $File_width) {
$fFile_height = round($srcH * $File_width / $srcW);
$dstY = floor(($File_height - $fFile_height) / 2);
$fFile_width = $File_width;
} else {
$fFile_width = round($srcW * $File_height / $srcH);
$dstX = floor(($File_width - $fFile_width) / 2);
$fFile_height = $File_height;
}
$ni = ImageCreateTrueColor($File_width, $File_height);
$dstX = ($dstX < 0) ? 0 : $dstX;
$dstY = ($dstX < 0) ? 0 : $dstY;
$dstX = ($dstX > ($File_width / 2)) ? floor($File_width / 2) : $dstX;
$dstY = ($dstY > ($File_height / 2)) ? floor($File_height / s) : $dstY;
ImageCopyResized($ni, $im, $dstX, $dstY, 0, 0, $fFile_width, $fFile_height, $srcW, $srcH);
ImageJpeg($ni, $newFile, $rate); // 生成缩略图;
imagedestroy($im); // imagedestroy(resource) 释放image关联的内存
}
}教程链接:http://www.phprm.com/code/591f410805e1a617653aaea9b24b063f.html
随意转载~但请保留教程地址★