Heim >Backend-Entwicklung >PHP-Tutorial >PHP-Bildverarbeitung (Teil 1) – Grundlagen

PHP-Bildverarbeitung (Teil 1) – Grundlagen

齐天大圣
齐天大圣Original
2020-05-03 10:42:11201Durchsuche

Ich bin zuvor auf ein Projekt gestoßen, bei dem Bildverarbeitungstechnologie zum Einsatz kam. Ähnlich dem Bild unten

PHP-Bildverarbeitung (Teil 1) – Grundlagen

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.

Grundkenntnisse

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
rrree

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 das Bild

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn