PHP 图像缩放器(缩略图生成器)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP 图像缩放器(缩略图生成器)相关的知识,希望对你有一定的参考价值。
function image_resize($input_file, $output_file, $new_size=75, $crop=true) {
if(!file_exists($input_file)) {
return false;
}
if (function_exists('ini_set')) {
@ini_set('memory_limit', -1);
ini_set( 'arg_separator.output' , '&' );
}
if(eregi('\.jpg$|\.jpeg$', $input_file)) {
$original = @imagecreatefromjpeg($input_file);
}
elseif (eregi('\.gif$', $input_file)) {
$original = @imagecreatefromgif($input_file);
}
elseif (eregi('\.png$', $input_file)) {
$original = @imagecreatefrompng($input_file);
}
else {
return false;
}
if ($original) {
if (function_exists('getimagesize')) {
list($width, $height, $type, $attr) = getimagesize($input_file);
} else {
return false;
}
$ratio['x'] = round($width/$new_size, 2);
$ratio['y'] = round($height/$new_size, 2);
if($crop == true) {
$ratio = min($ratio['x'], $ratio['y']);
}
else {
$ratio = max($ratio['x'], $ratio['y']);
}
$smallheight = floor($height / $ratio);
$smallwidth = floor($width / $ratio);
if($crop == true) {
$ofx = floor(($new_size - $smallwidth) / 2);
$ofy = floor(($new_size - $smallheight) / 2);
}
else {
$ofx = $ofy = 0;
}
if (function_exists('imagecreatetruecolor')) {
if($crop == true) {
$small = imagecreatetruecolor($new_size, $new_size);
}
else {
$small = imagecreatetruecolor($smallwidth, $smallheight);
}
} else {
if($crop == true) {
$small = imagecreate($new_size, $new_size);
}
else {
$small = imagecreate($smallwidth, $smallheight);
}
}
if (function_exists('imagecopyresampled')) {
imagecopyresampled($small, $original, $ofx, $ofy, 0, 0, $smallwidth, $smallheight, $width, $height);
} else {
imagecopyresized($small, $original, $ofx, $ofy, 0, 0, $smallwidth, $smallheight, $width, $height);
}
if(imagejpeg($small, $output_file)) {
if(file_exists($output_file)) {
return true;
}
}
else {
return false;
}
}
}
以上是关于PHP 图像缩放器(缩略图生成器)的主要内容,如果未能解决你的问题,请参考以下文章
PHP图像函数
PHP-生成缩略图和添加水印图-学习笔记
PHP-生成缩略图和添加水印图-学习笔记
php 生成缩略图
PHP生成缩略图--等比缩略图
php基础 gd图像生成缩放logo水印和验证码