教程集 www.jiaochengji.com
教程集 >  脚本编程  >  php  >  正文 php缩略图填充白边的示例代码

php缩略图填充白边的示例代码

发布时间:2017-09-15   编辑:jiaochengji.com
用php生成缩略图后填充白边的一例代码,有需要的朋友参考下。

php实现的缩略图规格要求都是160×120。
但如果上传的图片比例和缩略图不一致,直接缩放的话就会导致图片变形,这样体验肯定就不好了。

想了一个折中的办法,就是缩小后添加白边的方法。

源图,尺寸是600×366:
PHP缩略图的原图

最终生成的效果图:
PHP缩略图效果图

思路:
先将源图按比例生成缩略图,并且宽不大于160、高不大于120。例如上图会先生成160×98的缩略图。
新建一个160×120的白色背景图片,将上一步生成的缩略图居中放置到这张图片上就OK了。

代码:
 

复制代码 代码示例:

//源图的路径,可以是本地文件,也可以是远程图片
$src_path = '1.jpg';
//最终保存图片的宽
$width = 160;
//最终保存图片的高
$height = 120;

//源图对象
$src_image = imagecreatefromstring(file_get_contents($src_path));
$src_width = imagesx($src_image);
$src_height = imagesy($src_image);

//生成等比例的缩略图
$tmp_image_width = 0;
$tmp_image_height = 0;
if ($src_width / $src_height >= $width / $height) {
    $tmp_image_width = $width;
    $tmp_image_height = round($tmp_image_width * $src_height / $src_width);
} else {
    $tmp_image_height = $height;
    $tmp_image_width = round($tmp_image_height * $src_width / $src_height);
}

$tmpImage = imagecreatetruecolor($tmp_image_width, $tmp_image_height);
imagecopyresampled($tmpImage, $src_image, 0, 0, 0, 0, $tmp_image_width, $tmp_image_height, $src_width, $src_height);

//添加白边
$final_image = imagecreatetruecolor($width, $height);
$color = imagecolorallocate($final_image, 255, 255, 255);
imagefill($final_image, 0, 0, $color);

$x = round(($width - $tmp_image_width) / 2);
$y = round(($height - $tmp_image_height) / 2);

imagecopy($final_image, $tmpImage, $x, $y, 0, 0, $tmp_image_width, $tmp_image_height);

//输出图片
header('Content-Type: image/jpeg');
imagejpeg($final_image);

您可能感兴趣的文章:
php缩略图填充白边的示例代码
php生成缩略图自动填充白边例子
php 缩略图类(附调用示例)
PHP如何裁剪图片成固定大小
PHP图片裁剪函数(图像不变形)
Illustrator描边和填充颜色方法分享
php等比例缩放图片的示例参考
PHP等比例缩放图片生成缩略图函数的例子
c#生成图片缩略图的实例与思路分享
PHP字符串补全、自动填充、输出固定长度

关键词: php缩略图  缩略图   
[关闭]
~ ~