Bild per php "zuschneiden" und grösse anpassen

quicksilver

Lt. Junior Grade
Registriert
Jan. 2004
Beiträge
363
Hi ich habe ein Problem. Ich möchte ein Bild Propotional verkleinern und in einer Bestimmten grösse anzeigen. (height=156 width=210) Mein Problem dabei ist das die Bilder mal Hochkant und mal Normal quer aufgenommen sind. Ich möchte die Bilder aber in einem Bestimmten Thumbformat wiedergeben. Die Bilder sollen Aber nicht gequetscht sein, sondern lieber nach unten hin abgeschnitten. Hat da jemand eine vernüftige lösung? Oder sogar eine Funktion?

Vielen Dank
 
schneide die bilder vor dem verkleinern immer erst einmal im richtigem verhältniss unten ab.
 
Na super antwort :) sorry das ich das so dreist sage.. aber das ich das abschneiden muss weiss ich auch .. aber wenn ich wüsste wie.. dann würd ichs machen und hier nicht fragen oder meinst du nicht ;) ?
 
Ich dachte du willst blos wissen wie du das Seitenverhältnisss beibehälst.
Es gibt doch sicherlich eine tolle Methode die ein neues leeres Bild von gewünschter grösse erstellt. Dann sicher auch eine methode die ein Rechteckigen bereicht kopiert. Benutz die dinger doch. Kann ja nicht so schwierig sein. Oder willst du das hier jemand deine Arbeit erledigt ?

http://www.php.net/manual/de/function.imagecopy.php
 
Hallo,

wenn ich das richtig verstanden habe brauchst du ein script, welches dir aus einem bild ein proportionales thumbnail erzeugt. das script soll zusätzlich hoch/- und querformat Bilder unterscheiden können.

Vielleicht hilft dir das weiter:
PHP:
<?php
  // Variablen
  $max_hoehe_breite = 250;	//Neue Breite oder Hoehe des Thumbnails
  $bild = foto.jpg;	//Das zu ändernde Bild
  $bild_pfad = "pfad/zu/dem/bild/";	//Pfad zu dem Bild
  $bild_und_pfad = $bild_pfad.$datei;	//Pfad + Bildname (zur weiteren Verarbeitung benoetigt)
  $tn_pfad = "ordner/in/dem/das/thumbnail/abgespeichert/werden/soll/";	//Pfad zu den Thumbnails
  $tn_praefix = "";	//optional kannst du dem thumbnail noch einen praefix mitgeben

  // Bilddaten feststellen
  $size=getimagesize($bild_und_pfad);
  $breite=$size[0];
  $hoehe=$size[1];

  //Hier wir geprueft ob es sich um ein quer-/ oder hochformat Bild handelt und dementsprechend die neue Breite/Hoehe berechnet
  if($breite >= $hoehe) {
   //hier die Breite festlegen
   $neueBreite=$max_hoehe_breite;
   $neueHoehe=intval($hoehe*$neueBreite/$breite);
  }
  else {
   //hier die Hoehe festlegen
   $neueHoehe=$max_hoehe_breite;
   $neueBreite=intval($breite*$neueHoehe/$hoehe);
  }

  if($size[2]==1) {
  // GIF
  $altesBild=ImageCreateFromGIF($bild_und_pfad);
  $neuesBild=ImageCreate($neueBreite,$neueHoehe);
  ImageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);
  ImageGIF($neuesBild, $tn_pfad.$tn_praefix.$bild);
  }

  elseif($size[2]==2) {
  // JPG
  $altesBild=ImageCreateFromJPEG($bild_und_pfad);
  $neuesBild=imagecreatetruecolor($neueBreite,$neueHoehe);
  ImageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);
  ImageJPEG($neuesBild, $tn_pfad.$tn_praefix.$bild);
  }

  elseif($size[2]==3) {
  // PNG
  $altesBild=ImageCreateFromPNG($bild_und_pfad);
  $neuesBild=imagecreatetruecolor($neueBreite,$neueHoehe);
  ImageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);
  ImagePNG($neuesBild);
  ImagePNG($neuesBild, $tn_pfad.$tn_praefix.$bild);
  }

?>

Greetz,

b13nd
 

Ähnliche Themen

Zurück
Oben