2 Stimmen

Bildverarbeitung und -ausgabe mit GD in php

Ich möchte die Anzeige von Bildern mit der PHP GD-Bibliothek steuern - ich werde einen Text in der unteren Ecke des Bildes hinzufügen, wenn ein Browser das Bild anfordert, anstatt den Text im Bild zu speichern.

Ich weiß, dass ich dies tun kann: Setzen Sie den MIME-Typ in der Kopfzeile und rufen Sie dann imagepng(...) mit dem Dateinamen, um das Bild einfach im Browser anzuzeigen, aber wie würde ich es in ein Dokument einbetten? Zum Beispiel,

<img src='somefile.php?i=1' ... />

rufe ich einfach an imagepng mit dem Dateinamen, aber ohne die Kopfzeilen zu setzen?

Wenn jemand die Bildquelle aus dem Quellcode kopiert und im Browser darauf zugreift... was passiert dann, wenn die Header nicht gesetzt sind? Wird das Bild so angezeigt, als ob das eigentliche Bild angefordert wurde?

4voto

johnnyArt Punkte 4247

Wenn Sie das Bild am somefile.php Wenn ein Benutzer versucht, direkt auf diese URL zuzugreifen, gibt der Browser das Bild aus, es sei denn, er gibt die Variable mit der ID/dem Namen des Bildes nicht an.

Um das Bild in html zu verwenden, muss ich nur Folgendes tun <img src='somefile.php?f=FILENAME' /> um sie besser lesbar zu machen (sofern Sie die entsprechenden Bildnamen verwenden).

Stellen Sie sicher, dass Sie einen nicht spezifizierten Zugriff auf somefile.php indem sie entweder weitergeleitet werden oder ein Standardbild anzeigen.

Die Kopfzeilen teilen dem Browser mit, um welchen Dateityp es sich handelt, also geben Sie sie unbedingt an immer . Zum Beispiel:

#somefile.php

header('content-type: image/jpeg');  

$watermark = imagecreatefrompng('watermark.png');  
$watermark_width = imagesx($watermark);  
$watermark_height = imagesy($watermark);

$image = imagecreatetruecolor($watermark_width, $watermark_height);  
$image = imagecreatefromjpeg($_GET['src']);  //Path to the image file

$size = getimagesize($_GET['src']);          
$dest_x = $size[0] - $watermark_width - 5;  
$dest_y = $size[1] - $watermark_height - 5;

imagecopymerge($image, $watermark, $dest_x, $dest_y, 0, 0, $watermark_width, $watermark_height, 100);  
imagejpeg($image);  
imagedestroy($image);  
imagedestroy($watermark);  

Um also ein Bild mit diesem Code auf Ihrer HTML-Seite auszugeben, müssen Sie Folgendes tun:

<img src='somefile.php?src=filePath' />

Anmerkung: Wenn Sie kein jpg wollen, ändern Sie es einfach in png.

Mehr Dokumentation über GD + PHP verfügbar aquí .

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X