时间:2021-07-01 10:21:17 帮助过:3人阅读
/**
* 裁剪图片
* @return [type] [description]
*/
public function cutpic(){
if(IS_POST){
$targ_w = $_POST['w'];
$targ_h = $_POST['h'];
$pos_x = $_POST['x'];
$pos_y = $_POST['y'];
$pos_sw = $_POST['sw']; //选区宽
$jpeg_quality = 90;
$id = init_base64_decode($this->_post('imgid'));
if(!$id) exit;
$src = M('weipai_images')->where(array('id'=>$id))->getField('PicUrl');
$sf =ltrim($src,'http://'.$_SERVER['HTTP_HOST'].__ROOT__.'/');
$o_size = getimagesize($sf);
$pct = ($o_size[0]>$o_size[1]?$o_size[1]:$o_size[0])/$pos_sw;
if($pct!=1){
$targ_w*=$pct;
$targ_h*=$pct;
$pos_x*=$pct;
$pos_y*=$pct;
}
$img_r = imagecreatefromjpeg($src);
$dst_r = ImageCreateTrueColor( $targ_w, $targ_h );
imagecopyresampled($dst_r,$img_r,0,0,$pos_x,$pos_y,
$targ_w,$targ_h,$targ_w,$targ_h);
header('Content-type: image/jpeg');
imagejpeg($dst_r,$sf,$jpeg_quality);
// 释放内存
imagedestroy($dst_r);
redirect(U('Index/cutpicok',array('id'=>$id)));
}else{
$id = $this->_get('id');
if(!$id) exit;
$data = M('weipai_images')->where(array('id'=>$id))->find();
if(preg_match("/Public\/Uploads\/medias/",$data['PicUrl'])==false){
$sf = saveMedia($data['PicUrl']);
$sf = 'http://'.$_SERVER['HTTP_HOST'].__ROOT__.'/'.ltrim($sf,'./');
M('weipai_images')->where(array('id'=>$id))->save(array('PicUrl'=>$sf));
$data['PicUrl'] = $sf;
}
$this->assign('data',$data);
$this->display();
}
}