当前位置:首页 > PHP教程 > php应用 > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2024-03-09 11:59:11 浏览: 评论:0 

这篇文章给大家介绍了PHP图片指定宽高缩放的两种实现方法,文中通过代码示例和图文结合的方式给大家介绍的非常详细,感兴趣的朋友可以参考下。

方法一:使用 GD 库或 ImageMagick 库。

这里是一个使用 GD 库的示例:

  1. <?php 
  2. // 指定图片路径 
  3. $image_path = 'path/to/your/image.jpg'
  4.    
  5. // 指定缩放后的宽度和高度 
  6. $new_width = 200; 
  7. $new_height = 150; 
  8.    
  9. // 获取图片信息 
  10. list($width$height$type) = getimagesize($image_path); 
  11.    
  12. // 根据图片类型创建图片资源 
  13. switch ($type) { 
  14.     case IMAGETYPE_JPEG: 
  15.         $image = imagecreatefromjpeg($image_path); 
  16.         break
  17.     case IMAGETYPE_PNG: 
  18.         $image = imagecreatefrompng($image_path); 
  19.         break
  20.     case IMAGETYPE_GIF: 
  21.         $image = imagecreatefromgif($image_path); 
  22.         break
  23.     default
  24.         die('Unsupported image type'); 
  25.    
  26. // 创建一个新的空白图像 
  27. $new_image = imagecreatetruecolor($new_width$new_height); 
  28.    
  29. // 保持 PNG 和 GIF 图像的透明度 
  30. if ($type == IMAGETYPE_PNG || $type == IMAGETYPE_GIF) { 
  31.     imagealphablending($new_image, false); 
  32.     imagesavealpha($new_image, true); 
  33.     $transparent = imagecolorallocatealpha($new_image, 255, 255, 255, 127); 
  34.     imagefilledrectangle($new_image, 0, 0, $new_width$new_height$transparent); 
  35.    
  36. // 将原图像复制到新图像并进行缩放 
  37. imagecopyresampled($new_image$image, 0, 0, 0, 0, $new_width$new_height$width$height); 
  38.    
  39. // 输出新图像 
  40. header('Content-Type: image/' . image_type_to_extension($type, false)); 
  41. // 将新图像保存到目标路径 
  42. $target_path = 'path/to/your/image_100_150.png'
  43. imagepng($new_image$target_path); 
  44.    
  45. // 释放内存 
  46. imagedestroy($image); 
  47. imagedestroy($new_image); 
  48. ?> 

原图

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

缩放效果

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

方法二:使用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完全开发手册 · 看云

原图

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

缩放效果

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

结语:

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

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

Tags: PHP图片指定宽高缩放

分享到: