php等比例缩放图片及剪切图片代码分享

前端之家收集整理的这篇文章主要介绍了php等比例缩放图片及剪切图片代码分享前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

PHP等比例缩放图片及剪切图片代码分享

$ratio_orig){ $target_width = $target_height * $ratio_orig; }else{ $target_height = $target_width / $ratio_orig; } } switch ($source_mime){ case 'image/gif': $source_image = imagecreatefromgif($source_path); break;
case 'image/jpeg':
  $source_image = imagecreatefromjpeg($source_path);
  break;

case 'image/png':
  $source_image = imagecreatefrompng($source_path);
  break;

default:
  return false;
  break;

}
$target_image = imagecreatetruecolor($target_width,$target_height);
imagecopyresampled($target_image,$source_image,$target_width,$target_height,$source_width,$source_height);
//header('Content-type: image/jpeg');
$imgArr = explode('.',$source_path);
$target_path = $imgArr[0] . '_new.' . $imgArr[1];
imagejpeg($target_image,$target_path,100);
}

用法

  1. myImageResize($filename,200,200); //最大宽高
  2. myImageResize($filename,'width'); //宽度固定
  3. myImageResize($filename,'height'); //高度固定

剪切图片为固定大小:

// 源图过高
if ($source_ratio > $target_ratio){
$cropped_width = $source_width;
$cropped_height = $source_width * $target_ratio;
$source_x = 0;
$source_y = ($source_height - $cropped_height) / 2;
}elseif ($source_ratio < $target_ratio){ // 源图过宽
$cropped_width = $source_height / $target_ratio;
$cropped_height = $source_height;
$source_x = ($source_width - $cropped_width) / 2;
$source_y = 0;
}else{ // 源图适中
$cropped_width = $source_width;
$cropped_height = $source_height;
$source_x = 0;
$source_y = 0;
}

switch ($source_mime){
case 'image/gif':
$source_image = imagecreatefromgif($source_path);
break;

case 'image/jpeg':
  $source_image = imagecreatefromjpeg($source_path);
  break;

case 'image/png':
  $source_image = imagecreatefrompng($source_path);
  break;

default:
  return false;
  break;

}

$target_image = imagecreatetruecolor($target_width,$target_height);
$cropped_image = imagecreatetruecolor($cropped_width,$cropped_height);

// 裁剪
imagecopy($cropped_image,$source_x,$source_y,$cropped_width,$cropped_height);
// 缩放
imagecopyresampled($target_image,$cropped_image,$cropped_height);
$dotpos = strrpos($source_path,'.');
$imgName = substr($source_path,$dotpos);
$suffix = substr($source_path,$dotpos);
$imgNew = $imgName . '_small' . $suffix;
imagejpeg($target_image,$imgNew,100);
imagedestroy($source_image);
imagedestroy($target_image);
imagedestroy($cropped_image);
}

原文链接:https://www.f2er.com/php/20387.html

猜你在找的PHP相关文章