Ich baue eine Wallpaper-Website und daher muss ich in der Lage sein, das Originalbild vor dem Download zu skalieren. Ich habe versucht, diesen Code die Größe des Bildes:Crop Bildgröße ändern mit Hilfe von PHP
//resize and crop image by center
function resize_crop_image($max_width, $max_height, $source_file, $dst_dir, $quality = 80){
$imgsize = getimagesize($source_file);
$width = $imgsize[0];
$height = $imgsize[1];
$mime = $imgsize['mime'];
switch($mime){
case 'image/gif':
$image_create = "imagecreatefromgif";
$image = "imagegif";
break;
case 'image/png':
$image_create = "imagecreatefrompng";
$image = "imagepng";
$quality = 7;
break;
case 'image/jpeg':
$image_create = "imagecreatefromjpeg";
$image = "imagejpeg";
$quality = 80;
break;
default:
return false;
break;
}
$dst_img = imagecreatetruecolor($max_width, $max_height);
$src_img = $image_create($source_file);
$width_new = $height * $max_width/$max_height;
$height_new = $width * $max_height/$max_width;
//if the new width is greater than the actual width of the image, then the height is too large and the rest cut off, or vice versa
if($width_new > $width){
//cut point by height
$h_point = (($height - $height_new)/2);
//copy image
imagecopyresampled($dst_img, $src_img, 0, 0, 0, $h_point, $max_width, $max_height, $width, $height_new);
}else{
//cut point by width
$w_point = (($width - $width_new)/2);
imagecopyresampled($dst_img, $src_img, 0, 0, $w_point, 0, $max_width, $max_height, $width_new, $height);
}
$image($dst_img, $dst_dir, $quality);
if($dst_img)imagedestroy($dst_img);
if($src_img)imagedestroy($src_img);
}
Und dies wird die Resize tun:
resize_crop_image($width, $height, $image_URL, $save_URL)
Dieser Code funktioniert gut für mich, aber ich möchte nur die Ausgabe an den Browser des Benutzers senden, da Spar Tausende von zusätzlichen Bildern ist nicht möglich. Es gibt Bibliotheken, die ich verwenden kann, aber ich möchte kein Drittanbieter-Snippet verwenden. Gibt es eine Möglichkeit, diesen Code so zu verändern, wie ich es mir wünsche? Danke.
Nicht. Ändern Sie die Größe des Bildes * einmal *, wenn es hochgeladen wird. Erstellen und speichern Sie mehrere Größen. Speicherplatz ist viel billiger und einfacher zu skalieren als On-Demand-CPU-Skalierung. Quelle: Ich habe 24 TB Bilder. – Sammitch