我正在做一个社交网络项目,其中有一个选项可以添加/编辑照片,当用户点击按钮时,图像将被上传到数据库并更新...在保存到数据库之前是否可以裁剪图像。
只需调用此函数,使用源、目标和所需大小参数即可:)
function cropImage($source,$dest,$whsize) {
$size = getimagesize($source);
$w = $size[0];
$h = $size[1];
$xratio=$w/$whsize;
$yratio=$h/$whsize;
if($xratio > $yratio)$multiplier=$xratio;
else $multiplier=$yratio;
$nw=$w/$multiplier;
$nh=$h/$multiplier;
switch($size[2]) {
case '1':
$simg = imagecreatefromgif($source);
break;
case '2':
$simg = imagecreatefromjpeg($source);
break;
case '3':
$simg = imagecreatefrompng($source);
break;
}
$dimg = imagecreatetruecolor($nw, $nh);
$wm = $w/$nw;
$hm = $h/$nh;
$h_height = $nh/2;
$w_height = $nw/2;
if($w> $h) {
$adjusted_width = $w / $hm;
$half_width = $adjusted_width / 2;
$int_width = $half_width - $w_height;
imagecopyresampled($dimg,$simg,-$int_width,0,0,0,$adjusted_width,$nh,$w,$h);
} elseif(($w <$h) || ($w == $h)) {
$adjusted_height = $h / $wm;
$half_height = $adjusted_height / 2;
$int_height = $half_height - $h_height;
imagecopyresampled($dimg,$simg,0,-$int_height,0,0,$nw,$adjusted_height,$w,$h);
} else {
imagecopyresampled($dimg,$simg,0,0,0,0,$nw,$nh,$w,$h);
}
$dest=$dest.'jpeg';
imagejpeg($dimg,$dest,100);
}
可以的,将文件从上传目录移动到某个临时目录中,将该位置存储在他们的会话中,然后将其显示给他们进行裁剪,最后将其移动到生产区并插入数据库。