Ich bin zuvor auf ein Projekt gestoßen, bei dem Bildverarbeitungstechnologie zum Einsatz kam. Ähnlich dem Bild unten
Das Bild ist in drei Teile unterteilt: das Hintergrundbild, das QR-Code-Bild und den Text unter dem QR-Code-Bild. Dabei werden die QR-Code-Bilder und -Texte dynamisch generiert, und die QR-Code-Bilder und Textbeschreibungen sind für verschiedene Aktivitäten unterschiedlich.
Um diese Anforderung zu erfüllen, müssen wir die PHP-Bildverarbeitungstechnologie verwenden, um sie zu erreichen. Die Bildverarbeitung von PHP ist sehr leistungsfähig und kann viele Dinge tun. Zu den häufigsten gehören Bilder von Verifizierungscodes, Bildwasserzeichen, Miniaturansichten usw.
Zuerst müssen wir die erweiterte GD-Bibliothek von PHP installieren. Nachdem Sie ihn haben, können Sie mit den folgenden Schritten fortfahren. Das Folgende konzentriert sich hauptsächlich auf den Code. Informationen zur spezifischen Verwendung der Funktion finden Sie in der Dokumentation.
Leinwand erstellen
Die Hauptfunktion imagecreatetruecolor – erstellt ein neues Echtfarbenbild.
imagecreatetruecolor ( int $width , int $height ) : resource
Farbe der Leinwand festlegen
Hauptfunktionen
imagecolorallocate – Einem Bild eine Farbe zuweisen
imagefill – Flächenfüllung
imagecolorallocate ( resources $image , int $red , int $green , int $blue ): int
imagecolorallocate() gibt einen Bezeichner zurück, der eine Farbe darstellt, die aus den angegebenen RGB-Komponenten besteht. Rot, Grün und Blau sind jeweils die Rot-, Grün- und Blauanteile der gewünschten Farbe. Diese Parameter sind Ganzzahlen von 0 bis 255 oder Hexadezimalzahlen von 0x00 bis 0xFF.
imagecolorallocate() muss aufgerufen werden, um jede Farbe zu erstellen, die in dem durch image dargestellten Bild verwendet wird.
imagefill ( resources $image , int $x , int $y , int $color ): bool
imagefill() in image Die Koordinaten x, y des Bildes (die obere linke Ecke des Bildes Für 0, 0) verwenden Sie Farbe, um den Bereich zu füllen (d. h. Punkte mit derselben Farbe wie die x-, y-Punkte und benachbarten Punkte werden gefüllt).
<?php // 创建一个100*100的画布 $im = imagecreatetruecolor(100, 100); // 生成png图片 header("Content-type:image/png"); imagepng($im); imagedestroy($im);
Dieser Code generiert ein 100*100 rotes Hintergrundbild
Zeichne Punkte und Linien
Hauptfunktionen:
imagesetpixel – ein einzelnes Pixel zeichnen
imageline – ein Liniensegment zeichnen
imagesetpixel ( resources $image , int $x, int $y , int $color) : bool
imagesetpixel() Farbe im Bild verwenden Die Farbe befindet sich an den x-, y-Koordinaten (oben). linke Ecke des Bildes Zeichnen Sie einen Punkt auf 0,0).
imageline ( Ressource $image, int $x1, int $y1, int $x2, int $y2, int $color): bool
imageline() verwendet Farbe im Bild Zeichnen ein Liniensegment von den Koordinaten x1,y1 bis x2,y2 (0,0 in der oberen linken Ecke des Bildes).
<?php header("Content-type:image/png"); // 创建一个100*100的画布 $im = imagecreatetruecolor(100, 100); // 设置红包 $color = imagecolorallocate($im, 255, 0, 0); // 填充画布 imagefill($im, 0, 0, $color); // 生成图片 imagepng($im); // 销毁资源 imagedestroy($im);
Zeichne ein Rechteck
<?php $imgHandler = imagecreatetruecolor(100,100); // 填充背景 $bgColor = imagecolorallocate($imgHandler, 200, 30, 40); imagefill($imgHandler,0, 0, $bgColor); // 绘制点 for ($i = 0; $i < 100; $i++) { $pointColor = imagecolorallocate($imgHandler, rand(0,200), rand(0,200), rand(0,200)); imagesetpixel($imgHandler, rand(0, 100), rand(0, 100), $pointColor); } // 绘制线 for ($i = 0; $i < 10; $i++) { $lineColor = imagecolorallocate($imgHandler, rand(100, 225), rand(100, 225), rand(0, 50)); imageline($imgHandler, rand(0, 100), rand(0, 100), rand(0, 100), rand(0, 100), $lineColor); } header("Content-Type:image/png"); imagepng($imgHandler); imagedestroy($imgHandler);
Das obige ist der detaillierte Inhalt vonPHP-Bildverarbeitung (Teil 1) – Grundlagen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!