Hallo Ihr Lieben,
habe mir ein Script gebastelt um einen quadratischen Bildausschnitt aus einem Bild zu erstellen ... allerdings klappt das mit den Proportionen nicht so ganz und ich bekomme immer ein verzerrtes Quadrat bzw. einen schwarzen Rand rechts. Die Dimensionen für das Quadrat gibt die Bildbreite bzw. -höhe vor.
Hier mein Script - könnt Ihr mir sagen, was ich falsch gemacht habe?
Danke und liebe Grüße, Eure Katharina
$pic_orgW = $img_dimension[1];
$pic_orgH = $img_dimension[0];
// Querformat
if($pic_orgW > $pic_orgH)
{
// x-Koordinate = Original-Breite/2 minus Originalhöhe/2
$pic_orgX = ($img_dimension[1]/2)-($img_dimension[0]/2);
// y-Koordinate
$pic_orgY = 0;
// Quadrat, daher Breite = Höhe
$pic_orgW = $pic_orgH;
}
//Hochformat
if($pic_orgH > $pic_orgW)
{
// x-Koordinate
$pic_orgX = 0;
// x-Koordinate = Original-Höhe/2 minus Originalbreite/2
$pic_orgY = ($img_dimension[0]/2)-($img_dimension[1]/2);
$pic_orgH = $pic_orgW;
}
//Originalbild einlesen
$image = imagecreatefromjpeg($datei_tmp_name);
//Quadratisches Bild erstellen
$image_form = @imagecreatetruecolor($pic_orgW,$pic_orgH);
if (!$image_form) { $image_form = imagecreate($pic_orgW,$pic_orgH); }
//Quadratischen Ausschnitt aus Originalbild in quadratisches Bild kopieren
imagecopyresampled($image_form,$image,0,0,$pic_orgX,$pic_orgY,$pic_orgW,$pic_orgH,$img_dimension[1],$img_dimension[0]);
//Verschiedene Quadratische Größen erstellen
$image1 = @imagecreatetruecolor(current($img_size_types),current($img_size_types));
if (!$image1) { $image1 = imagecreate(current($img_size_types),current($img_size_types)); }
//Bild verkleinern
imagecopyresampled($image1,$image_form,0,0,0,0,current($img_size_types),current($img_size_types),$pic_orgW,$pic_orgH);
//Bild speichern
imagejpeg($image1,$img_path,100);