我希望在将图像上传到s3之前压缩图像。这是我用来压缩图像的代码。
//compress image before uploading
public static function compressedImage($img, $file_name, $ext){
$original_img;
$img_size = getimagesize($img);
$original_width = $img_size[0];
$original_height = $img_size[1];
$mime_type = $img_size['mime'];
$desired_width = 450;
$desired_height = ( $original_height * $desired_width ) / $original_width;
// making a copy of the image
if($mime_type=="image/jpeg"){
header('Content-Type: image/jpeg');
$original_img = imagecreatefromjpeg($img);
}elseif($mime_type=="image/png"){
header('Content-Type: image/png');
$original_img = imagecreatefrompng($img);
}elseif($mime_type=="image/gif"){
header('Content-Type: image/gif');
$original_img = imagecreatefromgif($img);
}
try {
$temp_img = imagecreatetruecolor($desired_width, $desired_height);
$copy_img = imagecopyresampled($temp_img, $img, 0, 0, 0, 0, $desired_width, $desired_height, $original_width, $original_height);
$compressed = imagejpeg($temp_img, public_path() . "/uploads/" . $file_name . "." . $ext,100);
return public_path() . "/uploads/" . $file_name . "." . $ext;
} catch (Exception $e) {
return $e;
}
}
此压缩在我的本地服务器上完美运行但由于某种原因无法在在线服务器上运行。
经过它,我意识到问题似乎与 imagecreatefrom ...() 部分,但我似乎无法弄清楚它到底有什么问题。 如果有人可以提供帮助,我会很高兴。