xgnic 发表于 2018-2-11 11:58:13


            本文介绍了PHP图片裁剪与缩放示例,废话不多少,具体代码如下:
/*
*exif_imagetype -- 判断一个图像的类型
*功能说明:函数功能是把一个图像裁剪为任意大小的图像,并保持图像不变形
*参数说明:输入 需要处理图片的 文件名,生成新图片的保存文件名,生成新图片的宽,生成新图片的高
*/

// 获得任意大小图像,不足地方拉伸,不产生变形,不留下空白
function image_resize($src_file, $dst_file, $new_width, $new_height)
{
$new_width = intval($new_width);
   
$new_height = intval($new_width);
   
if ($new_width1 && $ratio_h > 1))
{
   
    if ($ratio_w1) || ($ratio_w >1 && $ratio_h$ratio_w ? $ratio_h : $ratio_w;
   
    //取比例大的那个值
   
    // 定义一个中间的大图像,该图像的高或宽和目标图像相等,然后对原图放大
   
    $inter_w = (int)($w * $ratio);
   
    $inter_h = (int)($h * $ratio);
   
    $inter_($inter_w, $inter_h);
   
    //将原图缩放比例后裁剪
   
    imagecopyresampled($inter_img, $src_img, 0, 0, 0, 0, $inter_w, $inter_h, $w, $h);
   
    // 定义一个新的图像
   
    $new_($new_width, $new_height);
   
    imagecopy($new_img, $inter_img, 0, 0, 0, 0, $new_width, $new_height);
   
    switch($type)
    {
      case IMAGETYPE_JPEG :
         
      // 存储图像
      imagejpeg($new_img, $dst_file, 100);
         
      break;
         
      case IMAGETYPE_PNG :
         
      imagepng($new_img, $dst_file, 100);
      break;
         
      case IMAGETYPE_GIF :
         
      imagegif($new_img, $dst_file, 100);
         
      break;
         
      default :
         
      break;
    }
   
}// if3
   
}// end function
//输出新图片
image_resize('test.jpg', 'demo.jpg', '1200px', '1200px');
页: [1]
查看完整版本: PHP图片裁剪与缩放示例(无损裁剪图片)