Problem: Skript scheint langsam zu laufen. Dieses Skript befindet sich in einer Funktion, die vier Mal für unterschiedliche Bildgrößen ausgeführt wird. Gibt es eine Möglichkeit, den unten stehenden Code zu beschleunigen?Beschleunigung der Bildgrößenanpassung
$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);
Das ist * wirklich * schwer zu glauben. Bist du 100% sicher? Wenn das der Engpass ist, muss etwas nicht stimmen –
Es schien, dass getimagesize der langsame Teil war, aber ich denke auch, dass es die Art ist, wie ich die Bilder skaliere. Der Beitrag wurde mit weiteren Informationen aktualisiert. – stwhite
'imagecopyresampled()' ist die langsamste Funktion in diesem Code, 44% der gesamten Ausführungszeit, aber es scheint normal zu sein. –