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

 更新时间:2023年12月06日 09:36:39   作者:zzoood  
这篇文章给大家介绍了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');

  • 缩放效果

结语:

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

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

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

相关文章

  • PHP去除数组中重复的元素并按键名排序函数

    PHP去除数组中重复的元素并按键名排序函数

    用php实现的去除数组中重复的函数
    2008-08-08
  • WordPres对前端页面调试时的两个PHP函数使用小技巧

    WordPres对前端页面调试时的两个PHP函数使用小技巧

    这篇文章主要介绍了WordPres对前端页面调试时的两个PHP函数使用小技巧,分别是过滤Html内嵌JavaScript与禁止浏览器缓存的方法,需要的朋友可以参考下
    2015-12-12
  • PHP+MYSQL中文乱码问题

    PHP+MYSQL中文乱码问题

    这篇文章主要汇总介绍了几种解决PHP+MYSQL中文乱码问题的方法,十分的实用,有需要的小伙伴可以参考下。
    2015-07-07
  • PHP中“=>

    PHP中“=>

    在本篇文章里小编给大家分享了关于PHP中“=>"符号用法和作用详解,需要的朋友们学习下。
    2019-03-03
  • PHP 递归效率分析

    PHP 递归效率分析

    PHP的递归效率一般认为是低效的。大概一年前,我写了一篇博文,对三种遍历树的方法进行了比较,发现递归算法的效率最低。
    2009-11-11
  • 简单的php 验证图片生成函数

    简单的php 验证图片生成函数

    本函数可以生成简单的验证图片,用于输入的验证。
    2009-05-05
  • PHP JSON 数据解析代码

    PHP JSON 数据解析代码

    PHP解析JSON 数据代码,与大多数流行的 Web 服务如 twitter 、人人网通过开放 API 来提供数据一样,它总是能够知道如何解析 API 数据的各种传送格式,包括 JSON,XML 等等。
    2010-05-05
  • 一文带你掌握PHP中常见的文件操作

    一文带你掌握PHP中常见的文件操作

    这篇文章主要为大家详细介绍了PHP中常见的文件操作的相关知识,文字的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-03-03
  • PHP中date()日期函数有关参数整理

    PHP中date()日期函数有关参数整理

    PHP中date()日期函数有关参数整理,需要的朋友可以参考下。
    2011-07-07
  • php无序树实现方法

    php无序树实现方法

    这篇文章主要介绍了php无序树实现方法,实例分析了php无序树的实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07

最新评论