PHP实现图片指定宽高缩放的两种方法

 更新时间:2023年12月06日 09:36:39   作者:zzoood  
这篇文章给大家介绍了PHP图片指定宽高缩放的两种实现方法,文中通过代码示例和图文结合的方式给大家介绍的非常详细,感兴趣的朋友可以参考下
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

方法一:使用 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');

  • 缩放效果

结语:

方法一 使用GD库尺寸更加精确,但是会造成变形

方法二 尺寸上会与设置有所不同,但不会变形

到此这篇关于PHP图片指定宽高缩放的两种实现方法的文章就介绍到这了,更多相关PHP图片指定宽高缩放内容请搜索程序员之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持程序员之家!

相关文章

  • php实现通过cookie换肤的方法

    php实现通过cookie换肤的方法

    这篇文章主要介绍了php实现通过cookie换肤的方法,通过cookie存储用户选择信息实现换肤效果,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • php注册系统和使用Xajax即时验证用户名是否被占用

    php注册系统和使用Xajax即时验证用户名是否被占用

    这篇文章主要为大家详细介绍了php注册系统和使用Xajax即时验证用户名是否被占用,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • 再谈PHP未来之路

    再谈PHP未来之路

    这篇文章主要介绍了再谈PHP未来之路,对PHP感兴趣的同学,可以看一下
    2021-04-04
  • php的无刷新操作实现方法分析

    php的无刷新操作实现方法分析

    这篇文章主要介绍了php的无刷新操作实现方法,结合实例形式总结分析了PHP无刷新操作常见原理、实现技巧与注意事项,需要的朋友可以参考下
    2020-02-02
  • PHP 多维数组的排序问题 根据二维数组中某个项排序

    PHP 多维数组的排序问题 根据二维数组中某个项排序

    PHP 多维数组排序 根据二维数组中某个项排序,需要的朋友可以参考下。
    2011-11-11
  • PHP二维索引数组的遍历实例分析【2种方式】

    PHP二维索引数组的遍历实例分析【2种方式】

    这篇文章主要介绍了PHP二维索引数组的遍历,结合实例形式分析了php使用for循环与foreach循环2种方式遍历数组的相关操作技巧,需要的朋友可以参考下
    2019-06-06
  • php编写的抽奖程序中奖概率算法

    php编写的抽奖程序中奖概率算法

    本文给大家分享的是php中奖概率算法,可用于刮刮卡,大转盘等抽奖算法。用法很简单,代码里有详细注释说明,一看就懂,有需要的小伙伴参考下吧。
    2015-05-05
  • PHP获取指定时间段之间的 年,月,天,时,分,秒

    PHP获取指定时间段之间的 年,月,天,时,分,秒

    前端传俩个标准的 时间格式过来,格式像2009-05-12 12:12:30,然后根据需要返回这个时间段的不同单位的表示,对于时间格式的校验我这里代码没贴出来,所以用的时候自己考虑加上
    2016-06-06
  • PHP大文件及断点续传下载实现代码

    PHP大文件及断点续传下载实现代码

    这篇文章主要介绍了PHP大文件及断点续传下载实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • php中文乱码问题的终极解决方案汇总

    php中文乱码问题的终极解决方案汇总

    乱码是我们在开发可能经常遇见,也是最让人头疼的一个问题了,下面这篇文章主要介绍了在php开发中,可能遇见中文乱码问题的终极解决方案,文中介绍好几个情况下的解决方法,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-08-08

最新评论

?


http://www.vxiaotou.com