首页 > 资讯列表 > 编程/数据库 >> PHP

php生成缩略图填充白边(等比缩略图示例)

PHP 2014-12-27 13:12:04 转载来源: 网络整理/侵权必删

本文是一个php生成缩略图填充白边(等比缩略图示例),感兴趣的同学参考下. 上传图片直接缩放的话就会导致图片变形,这样体验肯定就不好了。下面提供一种解决方法,缩小后添加白边的方法看下面的代码实现 网站上传图片后生成缩略图应该是非常常用的功能了,通常来讲为了网站显示美观,缩略图会是同样尺寸,比如最近笔者做的一个站点,缩略图规格要求都是160×120

本文是一个php生成略图填充白边(等比缩略图示例),感兴趣的同学参考下.

上传图片直接缩放的话就会导致图片变形,这样体验肯定就不好了。下面提供一种解决方法,缩小后添加白边的方法看下面的代码实现

网站上传图片后生成缩略图应该是非常常用的功能了,通常来讲为了网站显示美观,缩略图会是同样尺寸,比如最近笔者做的一个站点,缩略图规格要求都是160×120。但是如果上传的图片比例和缩略图不一致,直接缩放的话就会导致图片变形,这样体验肯定就不好了。于是笔者想了一个折中的办法,就是缩小后添加白边的方法。

源图,尺寸是600×366:

最终生成的效果图:

代码相对比较长些,下面简单说下思路:

先将源图按比例生成缩略图,并且宽不大于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 生成 填充 白边 等比 示例


声明:本文内容来源自网络,文字、图片等素材版权属于原作者,平台转载素材出于传递更多信息,文章内容仅供参考与学习,切勿作为商业目的使用。如果侵害了您的合法权益,请您及时与我们联系,我们会在第一时间进行处理!我们尊重版权,也致力于保护版权,站搜网感谢您的分享!

站长搜索

http://www.adminso.com

Copyright @ 2007~2024 All Rights Reserved.

Powered By 站长搜索

打开手机扫描上面的二维码打开手机版


使用手机软件扫描微信二维码

关注我们可获取更多热点资讯

站长搜索目录系统技术支持