[S] Image Resize Skript

Ronald Nickel

Legendäres Mitglied
Hallo

um hochgeladene Bilder gegebenenfallls runter zu skalieren suche ich ein ampassbares skript (js, php) welches dies mit einstellbaren Parametern schnell erledigt. Zwar gibt es auch in meiner Heimatsprache (CFML) derartige Möglichkeiten, doch die brauchen mehr als 20 Sekunden um ein Bild von 1000px Breite auf 500py zu skalieren. Daher suche ich eine Alternative.

Gruß Ronny
 
Habe Mal so ein Script zusammen geklebt - hier sind die Snippets

folgendes ist in einem Loop wo die Bilder $i revue passiert werden:
CODE //detect pix which are either too wide, too high or too heavy
$filetocheck = $imagelist[$i];
$filetocheckweight = filesize($filetocheck);
$filetochecksize = getimagesize($filetocheck);
$filetocheckwidth = $filetochecksize[0];
$filetocheckheight = $filetochecksize[1];
if(filesize($filetocheck)>120000 || $filetocheckwidth>750 || $filetocheckheight>750)
{
if($filetocheckwidth<750 && $filetocheckheight<750)
{
if($filetocheckwidth>$filetocheckheight)
{ResizeGD($filetocheck, $filetocheck, $filetocheckwidth);}
else
{ResizeGD($filetocheck, $filetocheck, $filetocheckheight);}
}
else
{
ResizeGD($filetocheck, $filetocheck, 750);
}
}


die Funktion dazu:

CODE
function ResizeGD($image, $newimage, $size) {
list ($width,$height,$type) = GetImageSize($image);
if($im = ReadImageFromFile($image,$type)){
//if image is smaller than the $size, make it actual $size
if($height < $size && $width < $size){
$newheight=$height;
$newwidth=$width;
}
//if image height is larger, height=$size, then calc width
else if($height > $width){
$newheight=$size;
$newwidth=($width / ($height/$size));//cast the resized width as int
}
//if image width is larger, width=$size, then calc width
else{
$newwidth=$size;
$newheight=($height / ($width/$size));//cast the resized height as int
}
$im2=ImageCreateTrueColor($newwidth,$newheight);
ImageCopyResampled($im2,$im,0,0,0,0,$newwidth,$newheight,$width,$height);
if(WriteImageToFile($im2,$newimage,$type)){
return true;
}
}
return false;

 
Das hier dürfte das Image proportional verkleinern / vergrössern:
http://www.daniweb.com/web-development/php/threads/185667

Dieses Script macht die Funktion "imagecopyresampled" von PHP einiges schneller:
http://vanillaforums.org/discussion/6395/p...ript-resize-jpg

Also die Funktionsaufrufe "imagecopyresampled" vom ersten Script ersetzten durch "fastimagecopyresampled"

Benutze ich auch, und ist wirklich sehr schnell.

Wenn du nun noch eine Serverseitige Cache-Funktion einbaust, wird der Server noch einmal weniger belastet.
 
Zurück
Oben