- <?php
- function cutphoto($o_photo,$d_photo,$width,$height){
- $temp_img = p_w_picpathcreatefromjpeg($o_photo);
- $o_width = p_w_picpathsx($temp_img); //取得原图宽
- $o_height = p_w_picpathsy($temp_img); //取得原图高
- //判断处理方法
- if($width>$o_width || $height>$o_height){ //原图宽或高比规定的尺寸小,进行压缩
- $newwidth=$o_width;
- $newheight=$o_height;
- if($o_width>$width){
- $newwidth=$width;
- $newheight=$o_height*$width/$o_width;
- }
- if($newheight>$height){
- $newwidth=$newwidth*$height/$newheight;
- $newheight=$height;
- }
- //缩略图片
- $new_img = p_w_picpathcreatetruecolor($newwidth, $newheight);
- p_w_picpathcopyresampled($new_img, $temp_img, 0, 0, 0, 0, $newwidth, $newheight, $o_width, $o_height);
- p_w_picpathjpeg($new_img , $d_photo);
- p_w_picpathdestroy($new_img);
- }else{ //原图宽与高都比规定尺寸大,进行压缩后裁剪
- if($o_height*$width/$o_width>$height){ //先确定width与规定相同,如果height比规定大,则ok
- $newwidth=$width;
- $newheight=$o_height*$width/$o_width;
- $x=0;
- $y=($newheight-$height)/2;
- }else{ //否则确定height与规定相同,width自适应
- $newwidth=$o_width*$height/$o_height;
- $newheight=$height;
- $x=($newwidth-$width)/2;
- $y=0;
- }
- //缩略图片
- $new_img = p_w_picpathcreatetruecolor($newwidth, $newheight);
- p_w_picpathcopyresampled($new_img, $temp_img, 0, 0, 0, 0, $newwidth, $newheight, $o_width, $o_height);
- p_w_picpathjpeg($new_img , $d_photo);
- p_w_picpathdestroy($new_img);
- $temp_img = p_w_picpathcreatefromjpeg($d_photo);
- $o_width = p_w_picpathsx($temp_img); //取得缩略图宽
- $o_height = p_w_picpathsy($temp_img); //取得缩略图高
- //裁剪图片
- $new_imgx = p_w_picpathcreatetruecolor($width,$height);
- p_w_picpathcopyresampled($new_imgx,$temp_img,0,0,$x,$y,$width,$height,$width,$height);
- p_w_picpathjpeg($new_imgx , $d_photo);
- p_w_picpathdestroy($new_imgx);
- }
- }
- ?>
转载于:https://blog.51cto.com/chinawl/550142