Katharina: Quadratischer Bildausschnitt

Beitrag lesen

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);