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生成缩略图填充白边(等比缩略图方案)_PHP
网站上传图片后生成缩略图应该是非常常用的功能了,通常来讲为了网站显示美观,缩略图会是同样尺寸,比如最近笔者做的一个站点,缩略图规格要求都是160×120.但是如果上传的图片比例和缩略图不一致,直接缩放 ...
- 如何使用Java快速地给图片转码和生成缩略图(Thumbnailator和webp-imageio-core的使用)
文章简介 本文中介绍,如何使用Java优雅处理图片:包括:主流图片格式转码.图片压缩(缩略图生成)等.主要用到的外部工具包: Google Thumbnailator webp-imageio-cor ...
- php图片上传并生成缩略图
在生成图片的缩略图,比如宽和高的比例时,可以自由修改.这个类可用于配合前段的iframe表单元素,生成无刷新的上传图片,并在前段指定区域立即显示的效果.其实还可以再加一个属性,把任何服务器错误都替换成 ...
- PDF及普通图片文件上传生成缩略图
主要依赖 <dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</arti ...
- php 上传图片并生成缩略图,php 图片上传并生成缩略图代码
本代码的功能是把你要上传的图片保存到服务器,然后再把当前图重按比例生成一个小的缩略图哦. if($_FILES['image']['size']){ if($_FILES['image']['type ...
- php裁剪图片圆角圆形,php生成圆角图片代码
搜索热词 下面是编程之家 jb51.cc 通过网络收集整理的代码片段. 编程之家小编现在分享给大家,也给大家做个参考. $image_file = $_GET['src']; $corner_radi ...
- 计算摄影 | 计算机如何学会自动裁剪图片(自动构图)?
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 1 自动构图基础 1.1 什么是构图 自动裁剪用摄影的话语来说,就 ...
最新文章
- 2021-2027年中国手机天线行业竞争格局分析及发展趋势预测报告
- 如何将github上的 lib fork之后通过podfile 改变更新源到自己fork的地址
- QT的QDateTimeAxis类的使用
- TypeScript 的 Object Types
- Magento去除前台URL中显示的index.php
- date工具类 DateUtils.java
- 在Windows 7上安装ACE 6.1.0
- 【Java数据结构】赫夫曼树
- HTML5 之 FileReader(图片上传)
- RequestContextHolder 获取 ServletRequest 和 ServletResponse,Spring MVC ModelAndView 数据响应 Response
- 【HDOJ6071】Lazy Running(同余最短路思想)
- MSP430 F5529 单片机 OLED 音乐播放器 八音盒 蜂鸣器 音乐
- ChinaPay银联电子支付-退款功能
- QT绘图实现橡皮擦效果
- 获取设备唯一编号替代IMEI新方案
- 软件设计(十四)-UML建模(上)
- 一体机怎么修复音频服务器,导航一体机收音机信号不好?最全的自己动手修复教程来了!...
- Keil(MDK-ARM)使用教程——在线调试
- 2022年中考英语热点话题作文预测(满分范文15篇)
- 2023 上海(深圳)国际导热散热材料及设备展览会
热门文章
- CTSC2017酱油记
- Shell编程 之 while循环 和 until循环 和 总结
- javascript代码
- 函数矩阵OpenGL中glFrustum()和gluPerspective()的相互转换
- php 未实例化类调用方法的问题
- Java集合(三、Hashtable)
- GetBitmapBits和GetDIBits的区别(Windows GDI)
- VC++多线程工作笔记0007---线程间同步机制2
- Netty工作笔记0043---单Reactor多线程模式
- memcached高速缓存学习笔记001---memcached介绍和安装以及基本使用