php调整图片宽度与高度的实例代码

发布时间:2020-05-03编辑:脚本学堂
分享一例php代码,用于调整图片的宽度与高度,学习下php GD库中图像处理函数的用法,有需要的朋友作个参考。

本节内容:
调整图片宽度与高度

例子:
 

复制代码 代码示例:
<?php 
/**
 * 改变图片的宽高
 * @edit: www.jb200.com
 * @param string $img_src 原图片的存放地址或url 
 * @param string $new_img_path  新图片的存放地址 
 * @param int $new_width  新图片的宽度 
 * @param int $new_height 新图片的高度
 * @return bool  成功true, 失败false
 */ 
function resize_image($img_src, $new_img_path, $new_width, $new_height) 

    $img_info = @getimagesize($img_src); 
    if (!$img_info || $new_width < 1 || $new_height < 1 || empty($new_img_path)) { 
        return false; 
    } 
    if (strpos($img_info['mime'], 'jpeg') !== false) { 
        $pic_obj = imagecreatefromjpeg($img_src); 
    } else if (strpos($img_info['mime'], 'gif') !== false) { 
        $pic_obj = imagecreatefromgif($img_src); 
    } else if (strpos($img_info['mime'], 'png') !== false) { 
        $pic_obj = imagecreatefrompng($img_src); 
    } else { 
        return false; 
    } 
    $pic_width = imagesx($pic_obj); 
    $pic_height = imagesy($pic_obj); 
    if (function_exists("imagecopyresampled")) { 
        $new_img = imagecreatetruecolor($new_width,$new_height); 
        imagecopyresampled($new_img, $pic_obj, 0, 0, 0, 0, $new_width, $new_height, $pic_width, $pic_height); 
    } else { 
        $new_img = imagecreate($new_width, $new_height); 
        imagecopyresized($new_img, $pic_obj, 0, 0, 0, 0, $new_width, $new_height, $pic_width, $pic_height); 
    } 
    if (preg_match('~.([^.]+)$~', $new_img_path, $match)) { 
        $new_type = strtolower($match[1]); 
        switch ($new_type) { 
            case 'jpg': 
                imagejpeg($new_img, $new_img_path); 
                break
            case 'gif': 
                imagegif($new_img, $new_img_path); 
                break; 
            case 'png': 
                imagepng($new_img, $new_img_path); 
                break; 
            default: 
                imagejpeg($new_img, $new_img_path); 
        } 
    } else { 
        imagejpeg($new_img, $new_img_path); 
    } 
    imagedestroy($pic_obj); 
    imagedestroy($new_img); 
    return true; 

 
//调用示例 
$ret = resize_image('/images/www.jb200.com.gif', 'test.png', '300', '400'); 
var_dump($ret);