I encountered a project before that used image processing technology. Similar to the picture below
The picture is divided into 3 parts, the background picture, the QR code picture, and the text under the QR code picture. Among them, the QR code image and text are dynamically generated, and the QR code image and text description are different for different activities.
How to complete this requirement, we need to use PHP image processing technology to achieve it. PHP's image processing is very powerful and can do many things. Common ones include verification code images, image watermarks, thumbnails, etc.
First we need to install the extended GD library of php. After you have him, you can proceed to the following steps. The following mainly focuses on the code. Please refer to the documentation for the specific usage of the function.
Create canvas
The main function imagecreatetruecolor—creates a new true color image.
imagecreatetruecolor ( int $width , int $height ) : resource
<?php // 创建一个100*100的画布 $im = imagecreatetruecolor(100, 100); // 生成png图片 header("Content-type:image/png"); imagepng($im); imagedestroy($im);
Set the color of the canvas
Main function
imagecolorallocate — Assign a color to an image
imagefill — Area filling
imagecolorallocate ( resource $image , int $red , int $green , int $blue ) : int
imagecolorallocate () returns an identifier representing a color consisting of the given RGB components. red, green and blue are the red, green and blue components of the desired color respectively. These parameters are integers from 0 to 255 or hexadecimal from 0x00 to 0xFF.
imagecolorallocate() must be called to create each color used in the image represented by image.
imagefill ( resource $image , int $x , int $y , int $color ): bool
imagefill() in image The coordinates x, y of the image (the upper left corner of the image For 0, 0), use color to perform area filling (that is, points with the same color as the x, y point and adjacent points will be filled).
<?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);
This code will generate a 100*100 red background image
Draw points and lines
Main functions:
imagesetpixel — draw a single pixel
imageline — draw a line segment
imagesetpixel (resource $image, int $x, int $y, int $color): bool
imagesetpixel() uses color in the image. The color is at the x, y coordinates (upper left corner of the image) Draw a point on 0,0).
imageline (resource $image, int $x1, int $y1, int $x2, int $y2, int $color): bool
imageline() uses color to color in the image image Draw a line segment from coordinates x1,y1 to x2,y2 (0,0 in the upper left corner of the image).
<?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);
Draw a rectangle
<?php $imgHandler = imagecreatetruecolor(100,100); // 填充背景 $bgColor = imagecolorallocate($imgHandler, 200, 30, 40); imagefill($imgHandler,0, 0, $bgColor); // 绘制矩形边框 $borderCol = imagecolorallocate($imgHandler, 23, 32, 200); imagerectangle($imgHandler, 0, 0, 99, 99, $borderCol); header("Content-Type:image/png"); imagepng($imgHandler); imagedestroy($imgHandler);
The above is the detailed content of PHP Image Processing (Part 1) - Basics. For more information, please follow other related articles on the PHP Chinese website!