Bearbeiten Sie PHP-Bild- und GD-Grafikbibliotheken

Wenn wir ein Web in PHP entwickeln, verwenden wir Bilder, die wir dynamisch hochladen, und müssen sie oft manipulieren, um die Größe zu ändern oder ein Wasserzeichen zu setzen. Die Verwendung dynamischer Bilder ist sehr nützlich, da Benutzer oder Webmaster häufig Bilder aus einem Formular hochladen und diese gleich angezeigt werden müssen oder die Größe des Bildes automatisch ändern müssen.

Die Bibliothek für Grafik-GD ist eine in C entwickelte Bibliothek, mit der Bilder aus PHP bearbeitet werden können. Diese Bibliothek bietet Funktionen zum Verwalten von Bildern in verschiedenen Formaten wie JPEG, GIF, PNG, SWF, TIFF. Das PNG-Format wird am häufigsten verwendet, da es Transparenz ermöglicht.

panta01.jpg

Wir werden einige Beispiele sehen, wie man Bilder mit PHP und GD manipuliert, um die Beispiele auszuführen. Wir benötigen einen Remote-Server oder einen lokalen Server, der PHP unterstützt. Um einen lokalen Server zu installieren, können wir Xampp verwenden, wie wir im Tutorial Mount Xampp gesehen haben, um Ihren Computer in einen Webserver umzuwandeln .

Als nächstes sehen wir, wie Sie die Größe von Bildern ändern und die Größe des Bildes in einem Serverordner speichern.

 <? php // Ordner oder URL der Bildgröße ändern $ imagenoriginal = "moto01.jpg"; // Wir erstellen ein temporäres Bild, um es zu manipulieren // ohne das Originalbild zu verändern $ imagentemporal = imagecreatefromjpeg ($ original image); // Wir geben an, welche Breite maximal und welche maximal zulässig ist // für das verkleinerte Bild $ anchomaximo = 200; $ altomaximo = 200; // Ich extrahiere die Attribute width und height des Originalbilds $ dimensions = getimagesize ($ original image); $ width = $ dimensions [0]; $ high = $ dimensions [1]; // Wir berechnen die proportionale Breite und Höhe von // das verkleinerte Bild $ anchoproporcional = $ anchomaximo / $ width; $ highproportional = $ highmaximum / $ high; // Falls die Breite und Höhe innerhalb sind, // von dem maximal erlaubten behalten wir sie if (($ width <= $ anchomaximo) && ($ high <= $ altomaximo)) { $ newchick = $ wide; $ altonuevo = $ high; } // Wenn die Höhe größer als die Breite ist // Wir berechnen eine Höhe proportional zum maximal zulässigen elseif (($ anchoproporcional * $ alto) <$ altomaximo) { $ altonuevo = ceil ($ anchoproporcional * $ alto); $ anchonuevo = $ anchomaximo; } // Wenn die Breite größer als die Höhe ist // Wir berechnen eine Breite proportional zum maximal zulässigen Wert sonst { $ anchonuevo = ceil ($ hochproportional * $ breit); $ altonuevo = $ altomaximo; } // Erstelle ein Bild der Größe $ newchick für $ altonnew. $ imnew = imagecreatetruecolor ($ newchick, $ newton); // Wir kopieren das temporäre Bild auf das neue Bild mit dem // definierte Dimensionen imagecopyresampled ($ imnew, $ temporary image, 0,0,0,0, $ newchick, $ newnew, $ wide, $ tall); // Wir entfernen das temporäre Image des Ram Imagedestroy ($ imagentemporal); // Wir definieren die Qualität des neuen Bildes $ quality = 100; // Wir trennen den Namen der Datei von ihrer Endung $ file = explode (".", $ original image); // Wir fügen der neuen Datei das Wort mini hinzu // um zu wissen, was eine Miniatur ist $ newfile = $ file [0]. "- ​​mini.". $ file [1]; // Speichern Sie das neue Bild in dem Ordner, der // Lass uns zuweisen, zum Beispiel können wir einen Ordner haben // für Originalbilder und ein anderes für Thumbnails imagejpeg ($ new, $ newfile, $ quality); ?> 

Zum Beispiel nehmen wir ein quadratisches Bild mit einer Breite von 1000 Pixel und einer Höhe von 1000 Pixel.

See also  Java - Aufrufmethoden

panta02.jpg

Nach dem Ausführen des Skripts bleibt das Image wie folgt erhalten:

panta03.jpg

Wir testen dann mit einem rechteckigen Bild von 1550 Pixel Breite und 896 Pixel Höhe.

panta04.jpg

Nach dem Ausführen des Skripts wird die Bildgröße automatisch geändert:

panta05.jpg

Wir können sehen, dass die beiden Bilder niemals die maximal definierte Größe von 200 Pixel Breite überschreiten.
Mit GD können transparente Bilder verbunden werden, z. B. durch Einfügen von Wasserzeichen oder einer Beschriftung.
Eine der häufigsten Anwendungen ist es, in virtuellen Läden ein Poster auf ein Bild eines Produkts zu kleben, wenn es nicht vorrätig oder nicht vorrätig ist.

Mit den neuen PHP-Versionen wurden neue Funktionen für die Bildbearbeitung hinzugefügt. Sie können auch andere Bibliotheken wie ImageMagic oder Gmagic installieren , die Funktionen bereitstellen, mit denen die Verwaltung von Bildern einfacher ist als mit GD.

Als nächstes werden wir sehen, wie Sie ein Kästchen platzieren und einen Text als Wasserzeichen in ein Bild schreiben oder Details oder Briefköpfe einfügen.

 <? php // Wir erstellen ein temporäres Bild mit dem Originalbild $ imagentemporal = imagecreatefromjpeg ('moto01.jpg'); // Wir erstellen eine Box, um Text einzufügen // Geben Sie die Breite und Höhe der Box an $ box = imagecreatetruecolor (200, 75); // Wir fügen der Box Rahmen hinzu imagefilledrectangle ($ box, 0, 0, 195, 70, 0x009900); imagefilledrectangle ($ box, 9, 9, 190, 65, 0xFFFFFF); // Wir definieren die Ränder für die Box // und geben Sie die Höhe und Breite der Box an // in x- und y-Koordinaten, um zu wissen, wohin es auf dem Foto gehen wird $ rechter Rand = 10; $ minderer Rand = 10; $ posicionx = imagesx ($ box); $ posiciony = imagesy ($ box); // Kopieren Sie das Bild und die Box und erstellen Sie ein neues Bild imagecopymerge ($ imagentemporal) - $ posiciony, imagesx ($ imagentemporal) - $ posicionx- $ marginderecho, imagesy ($ imagentemporal) - $ posiciony- $ inferior margin, 0, 0, imagesx ($ inset), imagesy ($ inset), 50 ; // Wir verwenden einen Schrifttyp, der sich im selben Ordner befinden sollte $ font = 'arial.ttf'; // Wir weisen dem Text die rote Farbe im RGB-Format zu $ colortext = imagecolorallocate ($ imagetemporal, 255, 0, 0); // Wir definieren den Text, der im Bild erscheinen soll Bildtext ($ imagetemporal, 16, 0, 805, 950, $ colortext, $ font, 'Moto 01 Model A'); imagettftext ($ imagetemporal, 16, 0, 805, 975, $ colortext, $ font, 'mydomain.com'); // Speichern Sie das neue Bild im Ordner und speichern Sie den Ram imagepng ($ imagentemporal, 'newimage.png'); Imagedestroy ($ imagentemporal); ?> 

panta06.jpg

Die Farben können von der Farbcodes- Website entnommen werden und die Schriftart kann Tausende kostenloser TTF-Schriftarten von der Dafont- Website herunterladen.

See also  So prüfen Sie, ob der PC mit einer VR-Brille kompatibel ist

Diese Methode zur grafischen Darstellung von Text wird häufig von Captchas als Sicherheitsmaßnahme für die Anmeldung oder Benutzerregistrierung verwendet. Beispielsweise werden Buchstaben oder Zufallszahlen generiert und dann als Bild angezeigt, das der Benutzer zur Validierung in ein Textfeld schreiben muss.

Dann werden wir den Code erstellen, um ein Logo oder Wasserzeichen auf ein Foto zu setzen. Dazu werden wir den folgenden Code entwickeln.

 <? php // Ich erstelle ein PNG-Bild mit dem Logo oder Bild, das wir verwenden werden // als wasserzeichen $ brand = imagecreatefrompng ('brand.png'); // Ich erstelle ein temporäres Bild des zu markierenden Bildes $ imagentemporal = imagecreatefromjpeg ('moto02.jpg'); // Stellen Sie den unteren und rechten Rand des Wasserzeichenbildes ein $ rechter Rand = 10; $ minderer Rand = 10; // Wir legen die Position fest, an der sich die Marke befindet $ posicionx = imagesx ($ marca); $ posiciony = imagesy ($ marca); // Kopieren Sie das Wasserzeichen über das temporäre Bild und // Wir berechnen die Position des Markenimages oder Logos. imagecopy ($ imagentemporal, $ marca, imagesx ($ imagentemporal) - $ posicionx- $ marginderecho, imagesy ($ imagentemporal) - $ posiciony- $ inferior margin, 0, 0, imagesx ($ marca), imagesy ($ marca)); // Speichere das markierte Bild in einer neuen Datei imagepng ($ imagentemporal, 'newimage.png'); // Wir zeigen das Image mit der Marke und veröffentlichen Ram Header ('Inhaltstyp: Bild / PNG'); imagepng ($ imagentemporal); Imagedestroy ($ imagentemporal); ?> 

[/color] [color = # a9a9a9] Code, um ein Foto mit einem Logo oder Wasserzeichen zu versehen [/ color]

panta07.jpg

Durch das Setzen von Wasserzeichen vermeiden wir das Verknüpfen oder Stehlen von Bildern, wenn andere Benutzer unsere Bilder kopieren.

Wir müssen immer daran denken, eine Kopie des Originalbilds zu erstellen, bevor Sie eine Transformation durchführen. Es ist sehr wichtig, die URL des Quellbilds in einer Variablen und, wenn möglich, die geänderten Bilder in einem anderen Ordner zu speichern.

See also  Senden Sie kostenlos sichere E-Mails und Nachrichten

Wir können unsere eigenen Funktionen ausführen, um Bilder auf dynamische Weise zu bearbeiten, indem wir einige Parameter wie das Originalbild, Größen, Breite und Höhe senden, wenn wir einen Text oder ein Logo benötigen und dann ein Miniaturbild oder ein mit Wasserzeichen versehenes Bild erhalten. Denken Sie immer am Ende des Prozesses daran, dass Sie den RAM-Speicher freigeben müssen, indem Sie die Funktion aufrufen und das freizugebende Image angeben.

 Bildstörung ($ image); 

Laden Sie das Plugin Papepiling herunter

Angehängte Datei 165 Descargas plugin-papepiling.zip 12,53K 165 Downloads

administrator

Leave a Reply

Your email address will not be published. Required fields are marked *