php生成缩略图填充白边(等比缩略图方案)
网站上传图片后生成缩略图应该是非常常用的功能了,通常来讲为了网站显示美观,缩略图会是同样尺寸,比如最近笔者做的一个站点,缩略图规格要求都是160×120。但是如果上传的图片比例和缩略图不一致,直接缩放的话就会导致图片变形,这样体验肯定就不好了。于是笔者想了一个折中的办法,就是缩小后添加白边的方法。 源图,尺寸是600×366: 最终生成的效果图: 代码相对比较长些,下面简单说下思路: 先将源图按比例生成缩略图,并且宽不大于160、高不大于120。例如上图会先生成160×98的缩略图。 代码如下: //源图的路径,可以是本地文件,也可以是远程图片 $src_path = '1.jpg'; //最终保存图片的宽 $width = 160; //最终保存图片的高 $height = 120; //源图对象 //生成等比例的缩略图 $tmpImage = imagecreatetruecolor($tmp_image_width,$tmp_image_height); //添加白边 $x = round(($width - $tmp_image_width) / 2); imagecopy($final_image,$tmpImage,$x,$y,$tmp_image_height); //输出图片 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |