Home  >  Article  >  Backend Development  >  Detailed example of how to generate images using PHP built-in functions

Detailed example of how to generate images using PHP built-in functions

怪我咯
怪我咯Original
2017-06-28 10:36:432611browse

The example in this article describes how PHP uses built-in functions to generate images. Share it with everyone for your reference, the details are as follows:

Step 1: Create an image

Create a new php file and name it new-image.php (you can name it arbitrarily to facilitate subsequent calls) Just fine).

There are two functions in php to create an image: imageCreate() creates an empty image; ImageCreateFromPng() creates an image using an existing png image as the background. ("Png" here can be replaced with "jpg" or "gif", depending on the format of the background image)

$myImage=ImageCreate(400,60); //参数为宽度和高度
$myImage=ImageCreateFromJpg("http://farm5.static.flickr.com/418978874_c349c14359_o.jpg");

No matter which of the above methods you use, we have created a Picture, and save the picture into the variable of $myImage.

Step 2: Add colors

At this time we need to create some colors through the ImageColorAllocate() function and store them in variables for later use.

$white=ImageColorAllocate($myImage, 255, 255, 255);
$black=ImageColorAllocate($myImage, 0, 0, 0);
$red=ImageColorAllocate($myImage, 255, 0, 0);
$green=ImageColorAllocate($myImage, 0, 255, 0);
$blue=ImageColorAllocate($myImage, 0, 0, 255);

Step 3: Draw graphics

You can also use some of PHP’s built-in functions to add some geometric graphics:

ImageEllipse() //绘制椭圆
ImageArc() //绘制曲线
ImagePolygon() //绘制多边形
ImageRectangle() //绘制矩形
ImageLine() //绘制线条

Here is an example

ImageRectangle($myImage, 50, 20, 200, 15, $blue);

At this time, you will find that only the outline of the rectangle is drawn. If you want a filled rectangle, use the ImageFilledRectangle() method:

ImageFilledRectangle($myImage, 50, 20, 200, 15, $blue);

Step 4: Add text

We can use the imagettftext() function to add text to the image:

imagettftext($myImage, 12, 0, 5, 20, $black, "Fonts/Oblivious font.ttf",  "这是要显示的内容");

You must have noticed that here you need to choose a font (Fonts/Oblivious font.ttf is used here, you can use your own favorite font). If you don’t know how to obtain fonts, you can Google it. There are many websites for downloading fonts, and the content inside is enough to dazzle you.

Step 5: Generate the picture

When you have successfully drawn the picture you want to display, you need to display it on the page. The first thing to do is to tell the page that the data you want to send to it is a picture:

//这里的png可以换成jpg,或者是gif,根据你要生成的图片格式来确定
header("Content-type:image/png");
ImagePng($myImage);

Next, because we no longer need the $myImage variable, we need to release its memory:

ImageDestroy($myImage);

Step 6: Call the picture

Through the previous five steps, we have created a picture. Let me tell you how to call this created picture.

In the HTML file, we use the url to introduce this image:

<img src="new-image.php的路径" alt="myImage" />
//在src中,写入new-image.php文件的路径,你就会发现刚才创建的图片已经被成功的调用了

Use imagepng() to generate an image file

<?php imagepng($myImage,"xxx.jpg"); ?>
<?php
$myImage=ImageCreate(400,60); //参数为宽度和高度
$white=ImageColorAllocate($myImage, 255, 255, 255);
$black=ImageColorAllocate($myImage, 0, 0, 0);
$red=ImageColorAllocate($myImage, 255, 0, 0);
$green=ImageColorAllocate($myImage, 0, 255, 0);
$blue=ImageColorAllocate($myImage, 0, 0, 255);
imagettftext($myImage, 12, 0, 5, 20, $red, "stxingka.ttf", "果冻 Elvis");
?>
<?php imagepng($myImage,"xxx.jpg"); ?>

The above code will be in the root directory Generate a picture file of xxx.jpg.

The above is the detailed content of Detailed example of how to generate images using PHP built-in functions. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn