• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Bild am Server verkleinern

Status
Für weitere Antworten geschlossen.

schueler

Neues Mitglied
Hey Leute ..
ich hab ein kleines Problem.
Ich lad mit nem PHP upload ein Bild auf den Server und möchte dieses Bild dann verkleinern.

Code:
$tempbild = $bildname;
$size=getimagesize("$bildname");

$breite=$size[0];
$hoehe=$size[1];

$neueBreite=40;
$neueHoehe=intval($hoehe*$neueBreite/$breite);
$altesBild=ImageCreateFromJPEG("$tempbild");
$neuesBild=ImageCreate($neueBreite,$neueHoehe);
ImageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);
ImageJPEG($neuesBild,"thumb"."$tempbild");
Den Code hab ich mir jetzt aus den Internet geholt und funkt auch .. allerdings nur wenn das Bild im selben Verzeichnis liegt. Wie funktioniert dass allerdings wenn das Bild zum Beispiel im Untergeordneten Verzeichnis liegen würde?

Danke (:
 
Dann musst Du den richtigen Pfad zum Bild angeben bzw in $bildname stehen haben.
 
Okke danke hab den Fehler schon ... hab den Pfad wirklich falsch angegeben ;)

nur bekomm ich jz Bilder entweder schwarz weiß oder andere komischen Farben ... nur nicht so wie ichs haben will?
könntes dir bitte mal den Code ansehn?

Code:
$pfad = "../bilder/";
$tempname = $pfad.$bildname;
$size=getimagesize("$tempname");

$breite=$size[0];
$hoehe=$size[1];

$neueBreite=100;
$neueHoehe=intval($hoehe*$neueBreite/$breite);
$altesBild=ImageCreateFromJPEG("$tempname");
$neuesBild=ImageCreate($neueBreite,$neueBreite);
ImageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueBreite,$breite,$breite);
ImageJPEG($neuesBild,"$pfad"."file"."$bildname");
unlink($tempname);

thx
 
Vermutlich liegt es daran, dass Du das neue Bild nicht mit der imagecreatetruecolor()-Funktion erstellst. Hier mal eine Funktion, die bei mir läuft.
PHP:
function bild_thumbn($val1, $val2) {
// $val1 = Name (incl. Pfad) des neuen Bildes
// $val2 = Name (incl. Pfad) des hochgeladenen Bildes
   $info = getimagesize($val2);
   $breite=$info[0];
   $hoehe=$info[1];
   if ($breite > $hoehe) {
      $breite_neu=100;
      $hoehe_neu=$hoehe*($breite_neu/$breite);
   }
   else {
      $hoehe_neu = 75;
      $breite_neu = $breite * ($hoehe_neu / $hoehe);
   }
   $bild_res = imagecreatetruecolor($breite_neu, $hoehe_neu);
   $bild_res2 = imagecreatefromjpeg($val2);
   imagecopyresampled($bild_res, $bild_res2, 0, 0, 0, 0, $breite_neu, $hoehe_neu, $breite, $hoehe);
   imagejpeg($bild_res, $val1);
}

Gruß thuemmy
 
Status
Für weitere Antworten geschlossen.

Neueste Beiträge

Zurück
Oben