网站上传图片后生成缩略图应该是非常常用的功能了,通常来讲为了网站显示美观,缩略图会是同样尺寸,比如最近笔者做的一个站点,缩略图规格要求都是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相关推荐

  1. php裁剪图片白边,php生成缩略图填充白边(等比缩略图方案)

    网站上传图片后生成缩略图应该是非常常用的功能了,通常来讲为了网站显示美观,缩略图会是同样尺寸,比如最近笔者做的一个站点,缩略图规格要求都是160×120.但是如果上传的图片比例和缩略图不一致,直接缩放 ...

  2. php裁剪图片白边,php缩略图填充白边的示例代码

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

  3. php生成缩略图填充白,php生成缩略图填充白边(等比缩略图方案)_PHP教程

    网站上传图片后生成缩略图应该是非常常用的功能了,通常来讲为了网站显示美观,缩略图会是同样尺寸,比如最近笔者做的一个站点,缩略图规格要求都是160×120.但是如果上传的图片比例和缩略图不一致,直接缩放 ...

  4. php 生成等比例缩略图,php生成缩略图填充白边(等比缩略图方案)

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

  5. 裁剪图片,拼接的时候中间出现白线

    富文本显示,用户编辑了两张图片,然后裁剪了.结果显示端的时候,拼接中间出现白线. 拉取实际大小的时候(小程序bindload),得到的是三位小数的像素值. 向上取证,重置高度.即可.

  6. php裁剪图片圆角圆形,php生成圆角图片代码

    搜索热词 下面是编程之家 jb51.cc 通过网络收集整理的代码片段. 编程之家小编现在分享给大家,也给大家做个参考. $image_file = $_GET['src']; $corner_radi ...

  7. imgareaselect 缩略图 裁剪图片

    (客户端模拟裁剪图片) imgareaselect: http://odyniec.net/projects/imgareaselect/ php生成缩略图参考: http://www.php.net ...

  8. 原生PHP上传图片并且裁剪图片生成推广海报

    <?phpini_set('memory_limit', '-1'); /***生成宣传海报* @param array 参数,包括图片和文字* @param string $filename ...

  9. iOS实现动态区域裁剪图片

    阅读 249 收藏 32 2017-11-29 原文链接:github.com 想自己动手搭建一个 Discuz 论坛?试试腾讯云上实验室吧https://cloud.tencent.com/deve ...

最新文章

  1. C语言作用域、链接属性和存储类型
  2. poj2987最大权闭包(输出最少建塔个数)
  3. oracle mysql 并发连接数_如何修改Oracle并发连接数的设置
  4. can't load apple.laf.AquaLookAndFeel (Ant in Eclipse can't find it
  5. 记录腾讯云中矿机病毒处理过程(重装系统了fu*k)
  6. oracle进入rman报错,Oracle学习系列之Rman学习(三)
  7. [C++][基础]6_枚举和类
  8. Eclipse中配置CORBA环境
  9. [Windows] 集福宝- 支付宝 集福神器 2019
  10. Redis 中文入库成功,读取数据写入文件乱码问题
  11. KTHREAD 线程调度 SDT TEB SEH shellcode中DLL模块机制动态获取 《寒江独钓》内核学习笔记(5)...
  12. 2021-08-31
  13. 华为路由器IPv6 over IPv4 GRE隧道配置详解
  14. VINS-Mono 论文解读(IMU预积分残差+Marg边缘化)
  15. python画地球代码_python的pygame模拟太阳-地球-月亮-金星等动态示意图代码分析
  16. sap客户信贷_SAP 客户信贷重建一则
  17. EditPlus设置保存时不生成bak文件
  18. DNS的作用及解析流程
  19. sqli-labs靶场challenges第54-75关(超详细)
  20. HPUNIX环境常用查看硬件设备信息命令小结

热门文章

  1. Easyconnect mac版本下载地址
  2. 平衡二叉树(AVL)python实现
  3. zemax设计35mm镜头_1650万像素的手机镜头设计
  4. Manifold learning-based methods for analyzing single-cell RNA-sequencing data
  5. Git在window的使用(TortoiseGit)之一
  6. git使用笔记(一)入门
  7. (转)oracle表分区详解
  8. 关于blog [转贴]来自网络
  9. Linux内存之Cache
  10. 利用dynamoRIO实现codeCoverage