php等比例缩放图片及剪切图片代码分享
发布时间:2020-12-13 03:07:50 所属栏目:PHP教程 来源:网络整理
导读:《PHP实例:php等比例缩放图片及剪切图片代码分享》要点: 本文介绍了PHP实例:php等比例缩放图片及剪切图片代码分享,希望对您有用。如果有疑问,可以联系我们。 PHP教程 php等比例缩放图片及剪切图片代码分享 PHP教程 /** * 图片缩放函数(可设置高度固定,
《PHP实例:php等比例缩放图片及剪切图片代码分享》要点: PHP教程php等比例缩放图片及剪切图片代码分享 PHP教程
/**
* 图片缩放函数(可设置高度固定,宽度固定或者最年夜宽高,支持gif/jpg/png三种类型)
* Author : Specs
*
* @param string $source_path 源图片
* @param int $target_width 目标宽度
* @param int $target_height 目标高度
* @param string $fixed_orig 锁定宽高(可选参数 width、height或者空值)
* @return string
*/
function myImageResize($source_path,$target_width = 200,$target_height = 200,$fixed_orig = ''){
$source_info = getimagesize($source_path);
$source_width = $source_info[0];
$source_height = $source_info[1];
$source_mime = $source_info['mime'];
$ratio_orig = $source_width / $source_height;
if ($fixed_orig == 'width'){
//宽度固定
$target_height = $target_width / $ratio_orig;
}elseif ($fixed_orig == 'height'){
//高度固定
$target_width = $target_height * $ratio_orig;
}else{
//最年夜宽或最年夜高
if ($target_width / $target_height > $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);
}
PHP教程用法:
PHP教程剪切图片为固定年夜小: PHP教程
function imagecropper($source_path,$target_height){
$source_info = getimagesize($source_path);
$source_width = $source_info[0];
$source_height = $source_info[1];
$source_mime = $source_info['mime'];
$source_ratio = $source_height / $source_width;
$target_ratio = $target_height / $target_width;
// 源图太高
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);
}
欢迎参与《PHP实例:php等比例缩放图片及剪切图片代码分享》讨论,分享您的想法,编程之家 52php.cn为您提供专业教程。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |