問題:スクリプトが遅く実行されているようです。このスクリプトは、異なる画像サイズに対して4回実行される関数の中にあります。下のコードをスピードアップする方法はありますか? PHPの家族にコアと非常にスピーディーでイメージのサイズ変更のスピードアップ
$outputFile = "../data/assets/temp.jpg";
$maxTempWidth = 45;
$maxTempHeight = 45;
$image_info = getimagesize($setXsmallNewName);
if($image_info['mime'] == 'image/jpeg'){
$image = imagecreatefromjpeg($setXsmallNewName);
}elseif($image_info['mime'] == 'image/gif'){
$image = imagecreatefromgif($setXsmallNewName);
}elseif($image_info['mime'] == 'image/png'||$image_info['mime'] == 'image/x-png'){
$image = imagecreatefrompng($setXsmallNewName);
}
$width = imagesx($image);
$height = imagesy($image);
if ($width > $maxTempWidth || $height > $maxTempHeight){
if ($width > $height){
$newwidth = $maxTempWidth;
$ratio = $maxTempWidth/$width;
$newheight = floor($height * $ratio);
if ($newheight > $maxTempHeight){
$newheight = $maxTempHeight;
$ratio = $maxTempHeight/$height;
$newWidth = floor($width * $ratio);
}
}else{
$newheight = $maxTempHeight;
$ratio = $maxTempHeight/$height;
$newwidth = floor($width * $ratio);
if ($newwidth > $maxTempWidth){
$newwidth = $maxTempWidth;
$ratio = $maxTempWidth/$width;
$newheight = floor($height * $ratio);
}
}
}else{
$newwidth = $width;
$newheight = $height;
}
$final_image = imagecreatetruecolor($newwidth, $newheight);
imagecopyresampled($final_image, $image, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
これは本当に信じがたいです。あなたは100%確信していますか?それがボトルネックであれば何かが間違っているはずです –
getimagesizeは遅い部分だったようですが、画像のサイズを変更する方法かもしれないと思います。より多くの情報で投稿を更新しました。 – stwhite
'imagecopyresampled()'はこのコードでは最も遅い関数であり、実行時間全体の44%ですが、正常なようです。 –