php实现按指定大小等比缩放生成上传图片缩略图
PHP实现上传图片等比缩放生成缩略图的方法
在网页开发中,我们经常需要处理上传的图片,其中等比缩放生成缩略图是一个实用技巧。本文将详细介绍如何使用PHP实现这一功能。
对于需要等比缩放的图片,我们可以使用PHP中的`imagecreatefromgif`、`imagecreatefromjpeg`和`imagecreatefrompng`等函数来创建图像资源,然后根据需求进行缩放。以下是具体的实现方法:
```php
function resize($srcImage, $toFile, $maxWidth = 100, $maxHeight = 100, $imgQuality = 100) {
list($width, $height, $type, $attr) = getimagesize($srcImage); // 获取源图片的尺寸和类型
// 如果图片本身宽度或高度小于指定的最大宽度或高度,则无需缩放
if ($width < $maxWidth || $height < $maxHeight) return true;
switch ($type) {
case 1: $img = imagecreatefromgif($srcImage); break; // 创建GIF图像资源
case 2: $img = imagecreatefromjpeg($srcImage); break; // 创建JPEG图像资源
case 3: $img = imagecreatefrompng($srcImage); break; // 创建PNG图像资源
default: return false; // 不支持的图像类型
}
// 计算缩放比例,取最小比例以保证等比缩放
$scale = min($maxWidth / $width, $maxHeight / $height);
if ($scale < 1) { // 如果需要缩放
$newWidth = floor($scale $width); // 计算新宽度
$newHeight = floor($scale $height); // 计算新高度
$newImg = imagecreatetruecolor($newWidth, $newHeight); // 创建新的图像资源
imagecopyresampled($newImg, $img, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height); // 进行缩放操作
// 保存缩略图到指定路径,并返回文件路径或名称
$toFile = preg_replace("/(.gif|.jpg|.jpeg|.png)/i", "", $toFile); // 去除文件类型后缀,仅保留路径和文件名
switch ($type) {
case 1: imagegif($newImg, "$toFile.gif", $imgQuality); return "gif"; break;
case 2: imagejpeg($newImg, "$toFile.jpg", $imgQuality); return "jpg"; break;
case 3: imagepng($newImg, "$toFile.png", $imgQuality); return "png"; break;
}
imagedestroy($newImg); // 销毁新图像资源
}
imagedestroy($img); // 销毁源图像资源
return true; // 返回操作结果(成功或失败)
}
```
使用该函数,你可以轻松实现上传图片的等比缩放生成缩略图的功能。只需提供源图片路径、目标图片路径以及最大宽度和高度等参数即可。希望本文能对大家的PHP程序设计有所帮助。
编程语言
- php实现按指定大小等比缩放生成上传图片缩略图
- 深入PHP内存相关的功能特性详解
- php常用字符串处理函数实例分析
- 如何屏蔽防止别的网站嵌入框架代码
- 在 Angular6 中使用 HTTP 请求服务端数据的步骤详解
- Vue-cli3项目配置Vue.config.js实战记录
- ajax跨域访问遇到的问题及解决方案
- ASP,vbs正则轮翻在文章段落后加上网址等内容
- vue.js中父组件调用子组件的内部方法示例
- jQuery中-first-child选择器用法实例
- 浅谈javascript中的加减时间
- 自适应布局meta标签中viewport、content、width、init
- php连接mysql数据库最简单的实现方法
- JavaScript中将数组进行合并的基本方法讲解
- 浅析hosts 文件的作用及修改 hosts 文件的方法
- JS判断是否为JSON对象及是否存在某字段的方法(推