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

Die Funktion imagecopyresized

Status
Für weitere Antworten geschlossen.

R3van

Neues Mitglied
Ich möchte einen Konverter für Bilder programmieren. Dieser soll die Bilder auf eine neue Größe bringen.
Je nachdem ob die Höhe oder Breite größer ist wird später die jeweilige function ausgeführt. Dabei wird die Höhe bzw. die Breite auf 100pixel gebracht. Die andere Seite soll dabei angepasst werden ohne die Seitenverhältnisse des Ursprungsbildes zu zerstören.

Hier ist das Script, so wie ich es bisher geschrieben habe.

Code:
<?php

define("standart_breite",100);
define("standart_hoehe",100);
define("bild","bild.jpg");


$bild_info=getimagesize(bild);

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


bild_hoehe($breite,$hoehe);



function bild_hoehe($breite,$hoehe)
    {
        //Daten des Bildes werden eingelesen
        $bild_ursptrung = imagecreatefromjpeg(bild);
        
        //Seitenverhältnis wird berechnet und Seite (Breite) wird angepasst
        $breite_neu = $breite/$hoehe*standart_hoehe;
        
        //Der Handle des neuen Bildes wird erstellt. Die Höhe und die Breite wird eingestellt
        $image = imagecreate($breite_neu,standart_hoehe);
        
        imagecopyresized ($image,$bild_ursprung,0,0,0,0,$breite_neu,standart_hoehe,$breite,$hoehe);
        
        return imagejpeg ($image,'',100);
    }

?>

Beim Testen des Scriptes bekomme ich immer nur Unsinnige Zeichen auf meinem Monitor zu sehen. Könnt ihr mir helfen??

Ich freue mich über jede Antwort

Marcel
 
Zuletzt bearbeitet:
Verflixt und zugenäht. Ich kann die Frage einfach nicht finden.

Vielleicht sollte ich morgen noch'mal schnell einkaufen gehen und mir eine Lupe kaufen.
 
Da du bei filename einen leeren String übergibst wird das Bild nicht gespeichert sondern direkt ausgegebn. Wenn du diese Ausgabe mit return zurückgibst und dann z.b. mit echo ausgibst ist es wie wenn du ein Bild mit einem texteditor öffnest.
 
Wie? Was?

Kannst du mir die Zeile meines Fehlers angeben??

Ich muss dazu sagen ich habe voher noch nich mit bildfunktionen von PHP gearbeitet.. bitte entschuldige meine unwissen :-)
 
PHP:
return imagejpeg ($image,'',100);
Gibt das Bild direkt aus

Dann muss die Ausgabe datei aber den richtigen Header haben
 
Habe jetzt gemacht:

Code:
<?php

define("standart_breite",100);
define("standart_hoehe",100);
define("bild","bild.jpg");

header('Content-Type: image/jpeg');

$bild_info=getimagesize(bild);
$breite=$bild_info[0];
$hoehe=$bild_info[1];


bild_hoehe($breite,$hoehe);

function bild_hoehe($breite,$hoehe)
    {
        //Daten des Bildes werden eingelesen
        $bild_ursprung = imagecreatefromjpeg(bild);
        
        //Seitenverhältnis wird berechnet und Seite (Breite) wird angepasst
        $breite_neu = $breite/$hoehe*standart_hoehe;
        
        //Der Handle des neuen Bildes wird erstellt. Die Höhe und die Breite wird eingestellt
        $image = imagecreate($breite_neu,standart_hoehe);
        
        //Das neue Bild wird mit den Seiten angepasst
        imagecopyresized($image,$bild_ursprung,0,0,0,0,$breite_neu,standart_hoehe,$breite,$hoehe);
        
        //Temporäre Ausgabe des neuen Bildes
        imagejpeg($image,'dein_bild.jpg',100);
        
    }
    
?>

Aber als Ausgabe erhalte ich jetzt:

http://fg13.der-bbs-row.de/test/

das wars... ich versteh das nicht :cry:
 
Besten dank. Hab gerade rausgefunden, dass die qualität mit gif besser wird.
Muss mir jetzt nur noch überlegen wie ich das bild temprär behalte... da es nicht gespeichert werden soll... kannst du mir da auch helfen?

Ok habs.. war dumm von mir.. namen nicht angeben...
 
Zuletzt bearbeitet:
die quallität wird besser wenn du "imagegif()" furch "imagepng()" ersetzt und anstadt "imagecreate()", "imagecreatetruecolor()" schreibst ;)
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben