PHP实现图片指定宽高缩放的两种方法
发布:smiling 来源: PHP粉丝网 添加日期:2024-03-09 11:59:11 浏览: 评论:0
这篇文章给大家介绍了PHP图片指定宽高缩放的两种实现方法,文中通过代码示例和图文结合的方式给大家介绍的非常详细,感兴趣的朋友可以参考下。
方法一:使用 GD 库或 ImageMagick 库。
这里是一个使用 GD 库的示例:
- <?php
- // 指定图片路径
- $image_path = 'path/to/your/image.jpg';
- // 指定缩放后的宽度和高度
- $new_width = 200;
- $new_height = 150;
- // 获取图片信息
- list($width, $height, $type) = getimagesize($image_path);
- // 根据图片类型创建图片资源
- switch ($type) {
- case IMAGETYPE_JPEG:
- $image = imagecreatefromjpeg($image_path);
- break;
- case IMAGETYPE_PNG:
- $image = imagecreatefrompng($image_path);
- break;
- case IMAGETYPE_GIF:
- $image = imagecreatefromgif($image_path);
- break;
- default:
- die('Unsupported image type');
- }
- // 创建一个新的空白图像
- $new_image = imagecreatetruecolor($new_width, $new_height);
- // 保持 PNG 和 GIF 图像的透明度
- if ($type == IMAGETYPE_PNG || $type == IMAGETYPE_GIF) {
- imagealphablending($new_image, false);
- imagesavealpha($new_image, true);
- $transparent = imagecolorallocatealpha($new_image, 255, 255, 255, 127);
- imagefilledrectangle($new_image, 0, 0, $new_width, $new_height, $transparent);
- }
- // 将原图像复制到新图像并进行缩放
- imagecopyresampled($new_image, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
- // 输出新图像
- header('Content-Type: image/' . image_type_to_extension($type, false));
- // 将新图像保存到目标路径
- $target_path = 'path/to/your/image_100_150.png';
- imagepng($new_image, $target_path);
- // 释放内存
- imagedestroy($image);
- imagedestroy($new_image);
- ?>
原图
缩放效果
方法二:使用ThinkPHP的图像处理扩展
本示例版本:
php:5.0
think-image:1.0
安装扩展:
composer require topthink/think-image
代码示例
$image = \think\Image::open('./image.png');
// 按照原图的比例生成一个最大为150*150的缩略图并保存为thumb.png
$image->thumb(150, 150)->save('./thumb.png');
参考文档:图像处理 · ThinkPHP5.0完全开发手册 · 看云
原图
缩放效果
结语:
方法一 使用GD库尺寸更加精确,但是会造成变形
方法二 尺寸上会与设置有所不同,但不会变形
Tags: PHP图片指定宽高缩放
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)