Hallo!
Vorneweg: ich bin absoluter PHP-Anfänger.
Ich hab folgendes Problem. Für eine Fotogalerie möchte ich ein php-script erstellen, dass mir von vorhanden Bildern ein Thumbnail erstellt. Nichts besonderes bis hierher. Allerdings möchte ich, dass die Thumbnails quadratisch sind (w=h), auch wenn das Originalbild eine Rechteckige Abmessung (w <> h) hat.
Bisher hatte ich folgenden Code:
$size = GetImageSize ($dir.$file);
$bigpic = @imagecreatefromjpeg ($dir.$file);
$w=$size[0];
$h=$size[1];
if ($w>=$h) { $x=$w/$w*$stst; $y=$h/$w*$stst; }
if ($h>=$w) { $x=$w/$h*$stst; $y=$h/$h*$stst; }
$smallpic = imageCreateTrueColor($x,$y);
if (!$smallpic){
$smallpic = imageCreate($x,$y);
ImageCopyResized ($smallpic, $bigpic, 0, 0, 0, 0, $x, $y, $w,$h); }
else{
imagecopyresampled($smallpic,$bigpic,0,0,0,0,$x,$y,$w,$h);
}
ImageJPEG($smallpic,$dir."thumb/tn_".$file);
ImageDestroy($smallpic);
ImageDestroy($bigpic);
Dort habe ich dann die Größenprüfung rausgeworfen und
$x=stst;
4y=stst;
eingesetzt. $stst ist die Größenvorgabe für die Thumbnails. Das funktioniert auch soweit, nur sind die quadratischen Thumbnails natürlich gequetscht bzw. auseinandergezerrt.
Wie kann ich es realisieren, dass die Ausgangsgrafik ($bigpic) vor dem ImageCopyResize erst noch auf ein quadratisches Maß BESCHNITTEN wird?
Es würde genügen, wenn ein Bild im Querformat links und rechts gleichmäßig auf width=hight beschnitten wird. Und Hochformat entsprechend.
Viele Grüße
Flo
Vorneweg: ich bin absoluter PHP-Anfänger.
Ich hab folgendes Problem. Für eine Fotogalerie möchte ich ein php-script erstellen, dass mir von vorhanden Bildern ein Thumbnail erstellt. Nichts besonderes bis hierher. Allerdings möchte ich, dass die Thumbnails quadratisch sind (w=h), auch wenn das Originalbild eine Rechteckige Abmessung (w <> h) hat.
Bisher hatte ich folgenden Code:
$size = GetImageSize ($dir.$file);
$bigpic = @imagecreatefromjpeg ($dir.$file);
$w=$size[0];
$h=$size[1];
if ($w>=$h) { $x=$w/$w*$stst; $y=$h/$w*$stst; }
if ($h>=$w) { $x=$w/$h*$stst; $y=$h/$h*$stst; }
$smallpic = imageCreateTrueColor($x,$y);
if (!$smallpic){
$smallpic = imageCreate($x,$y);
ImageCopyResized ($smallpic, $bigpic, 0, 0, 0, 0, $x, $y, $w,$h); }
else{
imagecopyresampled($smallpic,$bigpic,0,0,0,0,$x,$y,$w,$h);
}
ImageJPEG($smallpic,$dir."thumb/tn_".$file);
ImageDestroy($smallpic);
ImageDestroy($bigpic);
Dort habe ich dann die Größenprüfung rausgeworfen und
$x=stst;
4y=stst;
eingesetzt. $stst ist die Größenvorgabe für die Thumbnails. Das funktioniert auch soweit, nur sind die quadratischen Thumbnails natürlich gequetscht bzw. auseinandergezerrt.
Wie kann ich es realisieren, dass die Ausgangsgrafik ($bigpic) vor dem ImageCopyResize erst noch auf ein quadratisches Maß BESCHNITTEN wird?
Es würde genügen, wenn ein Bild im Querformat links und rechts gleichmäßig auf width=hight beschnitten wird. Und Hochformat entsprechend.
Viele Grüße
Flo
Kommentar