IT技术教程 | 加入收藏 |
站长工具: it问吧 百度指数添加 综合查询吧 QQ空间背景音乐查询

PHP实现图片裁剪与缩放的几种方法

2017-08-12 11:44来源: 【cms学习好站】 作者:zcp 点击:


     
     图片兑换大小然后由php相关函数来实现图片裁剪功能,前段的js效果在这里就不介绍若,这儿到达到网上找到达很多这类代码,我只整理若php操作部份.
     方法一,代码热爱,图片裁剪缩放函数,支持方位裁剪和自定义坐标裁剪.
     /图片裁剪函数,支持兑换定点裁剪和方位裁剪两种裁剪模式@param<string>$src_file原图片路径@param<int>$new_width裁剪后图片宽度@param<int>$new_height裁剪后图片高度@param<int>$type裁剪方式,1-方位模式裁剪;0-定点模式裁剪。@param<int>$pos方位模式裁剪时的起始方位1为顶端居左,2为顶端居中,3为顶端居右;4为中部居左,5为中部居中,6为中部居右;7为底端居左,8为底端居中,9为底端居右;@param<int>$start_x起始位置X@param<int>$start_y起始位置Y@return<string>裁剪图片存储路径/functionthumb{$=;$dst_file=$.'/'.$.'_'.$new_width.'x'.$new_height.'.'.$;if{if{echo"paramswidthorheighterror!";exit;}if{echo$src_file."isnotexists!";exit;}//图像类型$img_type=exif_imagetype;$support_type=array;if{echo"只支持jpg、png、gif格式图片裁剪";exit;}/载入图像/switch{caseIMAGETYPE_JPEG:$src_img=imagecreatefromjpeg;break;caseIMAGETYPE_PNG:$src_img=imagecreatefrompng;break;caseIMAGETYPE_GIF:$src_img=imagecreatefromgif;break;default:echo"载入图像错误!";exit;}/获取源图片的宽度和高度/$src_width=imagesx;$src_height=imagesy;/擦净剪切图片的宽度和高度/$mid_width=?$src_width:$new_width;$mid_height=?$src_height:$new_height;/初始化源图片剪切裁剪的起始位置坐标/switch{case1://1为顶端居左$start_x=0;$start_y=0;break;case2://2为顶端居中$start_x=/2;$start_y=0;break;case3://3为顶端居右$start_x=$src_width-$mid_width;$start_y=0;break;case4://4为中部居左$start_x=0;$start_y=/2;break;case5://5为中部居中$start_x=/2;$start_y=/2;break;case6://6为中部居右$start_x=$src_width-$mid_width;$start_y=/2;break;case7://7为底端居左$start_x=0;$start_y=$src_height-$mid_height;break;case8://8为底端居中$start_x=/2;$start_y=$src_height-$mid_height;break;case9://9为底端居右$start_x=$src_width-$mid_width; $start_y=$src_height-$mid_height;break;default://踽break;}//为剪切图像投票背景画板$mid_img=imagecreatetruecolor;//到达剪切的图像数据到画板,敢剪切图像imagecopy;//为裁剪图像投票背景画板$new_img=imagecreatetruecolor;//到达剪切图像到背景画板,不过按比例裁剪imagecopyresampled;/按格式保存为图片/switch{caseIMAGETYPE_JPEG:imagejpeg;break;caseIMAGETYPE_PNG:imagepng;break;caseIMAGETYPE_GIF:imagegif;break;default:break;}}returnltrim;}附件掌握億到达样例图片的测试demo,不过,这个函数不支持动态gif图片的裁剪缩放.
     方法二,代码热爱:
     <?phplist=getimagesize;//获取原图尺寸$dst_scale=$dst_h/$dst_w;//目标图像长宽比$src_scale=$src_h/$src_w;//原图长宽比if{//过高$w=intval;$h=intval;$x=0;$y=/3;}else{//过宽$h=intval;$w=intval;$x=/2;$y=0;}//剪裁$source=imagecreatefromjpeg;$croped=imagecreatetruecolor;imagecopy;//缩放$scale=$dst_w/$w;$target=imagecreatetruecolor;$final_w=intval;$final_h=intval;imagecopysampled;//保存$timestamp=time;imagejpeg;imagedestroy;?>方法三:根据自定义的目标图,按目标图高宽比裁剪、缩放源图.传入参数,代码热爱:
     $source_pathstring源图路径$target_widthinteger目标图宽度$target_heightinteger目标图高度支持图片类型:image/gif,image/jpeg,image/png.functionimagecropper{$source_=getimagesize;$source_width=$source_;$source_height=$source_;$source_mime=$source_;$source_ratio=$source_height/$source_width;$target_ratio=$target_height/$target_width;//源图过高if{$cropped_width=$source_width;$cropped_height=$source_width$target_ratio;$source_x=0;$source_y=/2;}//源图过宽elseif{$cropped_width=$source_height/$target_ratio;$cropped_height=$source_height;$source_x=/2;$source_y=0;}//源图适中else{$cropped_width=$source_width;$cropped_height=$source_height;$source_x=0;$source_y=0;}switch{case'image/gif':$source_image=imagecreatefromgif;break;case'image/jpeg':$source_image=imagecreatefromjpeg;break;case'image/png':$source_image=imagecreatefrompng;break;default:returnfalse;break;}$target_image=imagecreatetruecolor;$cropped_image=imagecreatetruecolor;//裁剪imagecopy;//缩放imagecopyresampled;header;imagejpeg;imagedestroy;imagedestroy;imagedestroy;} (责任编辑:zcp)
以上学习文章《PHP实现图片裁剪与缩放的几种方法》由cms学习好站[www.cmsgood.com]提供阅读!

上一篇: 上一篇:如何从苹果电脑MAC系统登录远程桌面

下一篇: 下一篇:一个PHPSoapServer实例代码



网友评论:
发表评论
评价:
表情:
IT技术 | IT教程 | cms模板 | 网站地图
如果无意之中侵犯了您的版权,请来电告知,本站将在3个工作日内删除 QQ: 123456789
工业和信息化部网站备案系统,cms学习好站
备案号:豫ICP备14003914号-1