php裁剪图片白边,php生成缩略图填充白边(等比缩略图方案)_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中文网
php裁剪图片白边,php生成缩略图填充白边(等比缩略图方案)_PHP相关推荐
- php裁剪图片白边,php生成缩略图填充白边(等比缩略图方案)
网站上传图片后生成缩略图应该是非常常用的功能了,通常来讲为了网站显示美观,缩略图会是同样尺寸,比如最近笔者做的一个站点,缩略图规格要求都是160×120.但是如果上传的图片比例和缩略图不一致,直接缩放 ...
- php裁剪图片白边,php缩略图填充白边的示例代码
//源图的路径,可以是本地文件,也可以是远程图片 $src_path = '1.jpg'; //最终保存图片的宽 $width = 160; //最终保存图片的高 $height = 120; //源 ...
- php生成缩略图填充白,php生成缩略图填充白边(等比缩略图方案)_PHP教程
网站上传图片后生成缩略图应该是非常常用的功能了,通常来讲为了网站显示美观,缩略图会是同样尺寸,比如最近笔者做的一个站点,缩略图规格要求都是160×120.但是如果上传的图片比例和缩略图不一致,直接缩放 ...
- php 生成等比例缩略图,php生成缩略图填充白边(等比缩略图方案)
//源图的路径,可以是本地文件,也可以是远程图片 $src_path = '1.jpg'; //最终保存图片的宽 $width = 160; //最终保存图片的高 $height = 120; //源 ...
- 裁剪图片,拼接的时候中间出现白线
富文本显示,用户编辑了两张图片,然后裁剪了.结果显示端的时候,拼接中间出现白线. 拉取实际大小的时候(小程序bindload),得到的是三位小数的像素值. 向上取证,重置高度.即可.
- php裁剪图片圆角圆形,php生成圆角图片代码
搜索热词 下面是编程之家 jb51.cc 通过网络收集整理的代码片段. 编程之家小编现在分享给大家,也给大家做个参考. $image_file = $_GET['src']; $corner_radi ...
- imgareaselect 缩略图 裁剪图片
(客户端模拟裁剪图片) imgareaselect: http://odyniec.net/projects/imgareaselect/ php生成缩略图参考: http://www.php.net ...
- 原生PHP上传图片并且裁剪图片生成推广海报
<?phpini_set('memory_limit', '-1'); /***生成宣传海报* @param array 参数,包括图片和文字* @param string $filename ...
- iOS实现动态区域裁剪图片
阅读 249 收藏 32 2017-11-29 原文链接:github.com 想自己动手搭建一个 Discuz 论坛?试试腾讯云上实验室吧https://cloud.tencent.com/deve ...
最新文章
- C语言作用域、链接属性和存储类型
- poj2987最大权闭包(输出最少建塔个数)
- oracle mysql 并发连接数_如何修改Oracle并发连接数的设置
- can't load apple.laf.AquaLookAndFeel (Ant in Eclipse can't find it
- 记录腾讯云中矿机病毒处理过程(重装系统了fu*k)
- oracle进入rman报错,Oracle学习系列之Rman学习(三)
- [C++][基础]6_枚举和类
- Eclipse中配置CORBA环境
- [Windows] 集福宝- 支付宝 集福神器 2019
- Redis 中文入库成功,读取数据写入文件乱码问题
- KTHREAD 线程调度 SDT TEB SEH shellcode中DLL模块机制动态获取 《寒江独钓》内核学习笔记(5)...
- 2021-08-31
- 华为路由器IPv6 over IPv4 GRE隧道配置详解
- VINS-Mono 论文解读(IMU预积分残差+Marg边缘化)
- python画地球代码_python的pygame模拟太阳-地球-月亮-金星等动态示意图代码分析
- sap客户信贷_SAP 客户信贷重建一则
- EditPlus设置保存时不生成bak文件
- DNS的作用及解析流程
- sqli-labs靶场challenges第54-75关(超详细)
- HPUNIX环境常用查看硬件设备信息命令小结