kungschu: / GDlib: Weißer Rand auf beiden Seiten eines Bildes

Hallo Forum.

Ich werkel gerade an der Bearbeitung von Bildern mittels GDlib herum. Ist ein Bild breiter als 500px wird skaliert, ist das Bild schmaler, soll auf beiden Seiten weißer Rand bis zur geforderten Breite von 500px aushelfen, das (kleine) Bild soll also zentriert werden. Die Skalierung ist kein Problem, die "Verbreiterung" schon.

Wer hat Erfahrung damit und kann mir einen Tip geben? Mein bisheriger Ansatz sieht aus wie folgt:

  
if ($schmaler_als_500_px) {  
  
  $new_image = imagecreatetruecolor(500, $height_orig);  
  $background = imagecolorallocate($new_image, 255, 255, 255);  
  imagefill($new_image, 0, 0, $background);  
  
  $image = imagecreatefromjpeg($original_image);  
  
  imagecopyresampled($new_image, $image, 0, 0, 0, 0, 500, $height, $width_orig, $height_orig);  
  
}else{  
  
// Skalierung  
  
}  
  
// Datei erzeugen und speichern  

Ergebnis: Es wird eine neue Grafik erstellt (und gespeichert), sie ist wie gewünscht 500px breit und hat einen weißen Hintergrund (bzw. Rand). Das Originalbild ist allerdings nicht zentriert, sondern links ausgerichtet. Wie kann ich erreichen, beider Seiten des Originalbildes weißen Rand zu erzeugen, bis die 500px erreicht sind und nicht nur rechts davon?

Danke euch. Schönes Wochenende noch..

MfG, Kungschu.

--
Brain: an apparatus with which we think we think.
  1. Ich grüsse den Cosmos,

    Das Originalbild ist allerdings nicht zentriert, sondern links ausgerichtet.

    Ganz klar, wenn du das Bild linksbündig ausrichtest ....

    bool imagecopyresampled ( resource $dst_image, resource $src_image, int $dst_x, int $dst_y, int $src_x, int $src_y, int $dst_w, int $dst_h, int $src_w, int $src_h )

    src_x x-coordinate of source point
    src_y y-coordinate of source point

    Ich finde die Doku leicht verständlich und ausreichend beschrieben.

    Möge das "Self" mit euch sein

    --
    Fragt ein Atom das andere: Hast du mein Elektron gesehen? Ich bin heute so positiv.
    ie:{ br:> fl:| va:| ls:& fo:{ rl:( n4:{ de:] ss:) ch:? js:| mo:) sh:( zu:)
    1. Hallo Manuel.

      Das Originalbild ist allerdings nicht zentriert, sondern links ausgerichtet.

      Ganz klar, wenn du das Bild linksbündig ausrichtest ....

      Stimmt. Da habe ich mir es etwas zu einfach gemacht. Ich habe nun einen Teil aus diesem Script verwendet, nämlich:

        
        if ($skalh < $skalv) {  
        
          $y0=round(($vertikal-$y2*$skalh)/2);  
          $x0=0;  
          $xw=$horizontal;  
          $yw=round($y2*$skalh);  
        
        } elseif ($skalh > $skalv) {  
        
          $x0=round(($horizontal-$x2*$skalv)/2);  
          $y0=0;  
          $xw=round($x2*$skalv);  
          $yw=$vertikal;  
        
        }  
      
      

      Hier erhalte ich durch $x0=round(($horizontal-$x2*$skalv)/2); die Breite für eine Seite Rand und somit das gewünschte Ergebnis.

      Danke.

      MfG, Kungschu.

      --
      Brain: an apparatus with which we think we think.