PHP图片缩放裁剪

代码

/**
 * 裁剪图片
 * 不足地方拉伸,不产生变形,不留下空白
 * @param $src_file //来源物理路径
 * @param $dst_file //裁剪后保存的物理路径
 * @param int $new_width 宽度
 */
function image_resize($src_file, $dst_file, $new_width=400)
{
    $type = exif_imagetype($src_file);
    //打开来源图片
    switch($type)
    {
        case IMAGETYPE_JPEG :
            //存储图像
          $a = imagecreatefromjpeg($src_file);
          break;
        case IMAGETYPE_PNG :
          $a = imagecreatefrompng($src_file);
          break;
        case IMAGETYPE_GIF :
          $a = imagecreatefromgif($src_file);
          break;
        default :
          break;
    }
        
    // 将图片宽高获取到
    list($width, $height) = getimagesize($src_file);
    //定义百分比,缩放到0.1大小
    $percent = $new_width/$width;
    $new_height = $height * $percent; //新高度
    //创建新图片
    $new_image = imagecreatetruecolor($new_width, $new_height);
    //将原图$image按照指定的宽高,复制到$new_image指定的宽高大小中
    imagecopyresampled($new_image, $a, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
    switch($type)
    {
        case IMAGETYPE_JPEG :
            //存储图像
            imagejpeg($new_image, $dst_file, 90);
            break;
        case IMAGETYPE_PNG :
            imagepng($new_image, $dst_file, 90);
            break;
        case IMAGETYPE_GIF :
            imagegif($new_image, $dst_file);
            break;
        default :
            break;
    }
}


若文章对您有帮助,帮忙点个赞!

0
-5
发布时间 2022-05-21 16:40:31
0 条回复(回复会通过微信通知作者)
点击加载更多评论
登录 后再进行评论
(微信扫码即可登录,无需注册)