php按百分比生成缩略图的代码分享
最近,我参与了一个网站项目,其中需要生成图片缩略图以减小列表页的大小并减轻服务器压力。对于崇尚简洁与实用的我来说,面对网上复杂冗长的PHP缩略图类,我感到了不小的困扰。虽然那些类功能强大,但我并不需要所有的复杂功能。
于是,我决定自己动手,翻查手册后利用几个简单的函数,编写了一个简洁的PHP生成缩略图的程序。这个程序无需使用类,一个函数就能轻松搞定。对于新手来说,更易于理解,希望能帮助到更多的人。
这个程序支持按原图比例生成缩略图,也支持按指定的长宽生成缩略图,默认是按百分比缩略。详细的注释已经嵌入在代码中,如有问题,欢迎在狼蚁网站SEO优化留言交流。
以下是源码:
```php
function makeThumb($ori_img, $new_img, $percent=50, $width=0, $height=0){
//获取原图信息
$original = getimagesize($ori_img);
//根据图片类型创建原始图像资源
switch($original[2]){
case 1: $s_original = imagecreatefromgif($ori_img); break;
case 2: $s_original = imagecreatefromjpeg($ori_img); break;
case 3: $s_original = imagecreatefrompng($ori_img); break;
}
//如果有百分比参数且大于0,则按照百分比计算目标宽度和高度
if($percent > 0){
$width = $original[0] $percent / 100;
$height = $original[1] $percent / 100;
$width = ($width > 0) ? $width : 1;
$height = ($height > 0) ? $height : 1;
}
//创建一个真彩画布
$canvas = imagecreatetruecolor($width,$height);
//调整图像大小并复制到画布上
imagecopyresized($canvas, $s_original, 0, 0, 0, 0, $width, $height, $original[0], $original[1]);
//生成新的图片文件
$loop = imagejpeg($canvas, $new_img);
if($loop){
echo "OK!<br/>"; //输出成功信息
}
}
//示例调用函数生成缩略图
makeThumb("bhsj.jpg","suolue1.jpg",15,0,0); //生成原图15%的缩略图
makeThumb("bhsj.jpg","suolue2.jpg",0,200,120); //生成指定宽高缩略图
makeThumb("bhsj.jpg","suolue3.jpg",15,200,120); //同时提供百分比和指定宽高时,优先按照百分比缩略
```
这段代码中包含了一个名为`makeThumb`的函数,它可以根据给定的参数生成缩略图。你可以通过调用这个函数并传入相应的参数来生成你需要的缩略图。例如,你可以生成原图15%的缩略图,也可以指定缩略图的宽度和高度。如果同时提供了百分比和指定宽高参数,程序会优先按照百分比进行缩略。
编程语言
- php按百分比生成缩略图的代码分享
- vue-router中scrollBehavior的巧妙用法
- flex打印操作(FlexPrintJob)还有分页打印操作具体实
- vue 全选与反选的实现方法(无Bug 新手看过来)
- PHP获取当前时间的5种实现方式
- js检测离开或刷新页面时表单数据是否更改的方法
- Asp.net中阻止页面按钮多次提交的解决办法
- input点击后placeholder中的提示消息消失
- JavaScript创建对象的方式小结(4种方式)
- 简谈创建React Component的几种方式
- PHP页面转UTF-8中文编码乱码的解决办法
- jQuery实现的简单动态添加、删除表格功能示例
- 微信开发(一) asp.net接入
- ExtJs整合Echarts的示例代码
- JS与jQuery遍历Table所有单元格内容的方法
- 一个asp替换函数img里面多余的代码