10 Tips for PHP Scripting (4)_PHP Tutorial
Jul 21, 2016 pm 04:05 PM
Dynamically create images
After installing some third-party function libraries and combining your graphics processing skills, you can create and process images with PHP. In fact, you don't need too advanced knowledge of geometry. I always failed this class in middle school, and I still know how to create images in PHP now!
Before using basic image creation functions, you need to install the GD library. If you want to use JPEG-related image creation functions, you also need to install jpeg-6b. When using Type 1 fonts in images, t1lib must also be installed.
Here, you need to make further adjustments to your system. First, you must install t1lib to provide image processing support, followed by jpeg-6b. The third step is to install the GD function library. You have to complete these three tasks in order. The reason is that you need to compile the GD library to use the jpeg-6b library. If jpeg-6b is installed first, the compilation will go wrong. By then, you will be busy and have nothing to do. .
After installing the above three function libraries, you need to reconfigure PHP. This is your specialty when installing the DSO version of PHP! Then execute the make clean command, and then add the following code to the current configuration indicator:
--with-gd=[/path/to/gd]
--with-jpeg-dir=[ /path/to/jpeg-6b]
--with-t1lib=[/path/to/t1lib]
Finally execute the make and make install commands in order to complete the preparation task. Restart Apache and run the phpinfo() function to check whether the new features are functioning properly.
Depending on the GD library you have installed, you may or may not have the ability to create GIF or PNG images. Here's the kicker: if you have gd-1.6 or earlier installed, you can handle GIFs but not PNGs. If you have gd-1.6 or later installed, you can process PNGs but not GIFs.
Creating a simple image requires several functions. I'll walk you through the process step by step:
Output a file header that contains the MIME type of the image you created, in our case PNG.
header ("Content-type: image/png");
Use ImageCreate() to create a variable to store a blank image. This function requires the image size in pixels. The format is ImageCreate(x_size, y_size). For a 250-X-250 pixel image, the usage is as follows:
$newImg = ImageCreate(250,250);
Because your image is still Blank, so you still have to try to fill it with some color, but first you need to assign a name to each color according to its RGB value, which uses the ImageColorAllocate() function. The format of the function is ImageColorAllocate([image], [red], [green], [blue]). If it is sky blue, the specific code is as follows:
$skyblue = ImageColorAllocate($newImg,136,193,255);
Next, you need to call the ImageFill() function to fill the image with the above color. ImageFill(), there are several versions of the function, such as ImageFillRectangle(), ImageFillPolygon() and so on. For the sake of simplicity, we use the ImageFill() function for color filling. The format is as follows:
ImageFill([image], [start x point], [start y point], [color])
ImageFill ($newImg,0,0,$skyblue);
Finally, you create the image and destroy the image stream to free up memory:
ImagePNG($newImg);
ImageDestroy($ newImg); ?>
The specific code looks a lot like the following:
header ("Content-type: image/png");
$newImg = ImageCreate(250,250);
$skyblue = ImageColorAllocate($newImg,136,193,255);
ImageFill($newImg,0,0,$skyblue);
ImagePNG($newImg);
ImageDestroy( $newImg);
?>
If you call this script skyblue.php and access it with your own browser, you will see a 250-X-250 pixel large blue PNG image .
You can also use image creation functions to process images, such as creating thumbnails of large images.
Suppose you want to create a 35-X-35 pixel thumbnail of an image. What you do is create a new 35 x 35 pixel image; create an image stream containing its original image contents; then resize the original image and place it into the new blank image.
The key function used to achieve the above purpose is ImageCopyResized(). The format of this function is as follows: ImageCopyResized([new image handle],[original image handle],[new image X], [new Image Y], [original image X], [original image Y], [new image X], [new image Y], [original image X], [original image Y]);
The following is the code Note.
/* send a header so that the browser knows the content-type of the file */
header("Content-type: image/png");
/* set up variables to hold the height and width of your new image */
$newWidth = 35;
$newHeight = 35;
/* create a blank, new image of the given new height and width */
$newImg = ImageCreate($newWidth,$newHeight);
/* get the data from the original, large image */
$origImg = ImageCreateFromPNG("test .png");
/* copy the resized image. Use the ImageSX() and ImageSY functions to get the x and y sizes of the orginal image. */
ImageCopyResized($newImg,$origImg ,0,0,0,0,$newWidth,$newHeight,ImageSX($origImg),ImageSY($origImg));
/* create final image and free up the memory */
ImagePNG ($newImg);
ImageDestroy($newImg); ?>
If you call the above script resized.php and access it with your own browser, you should see a 35-X- Miniature PNG image of 35 pixels size.

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

The method to get the current session ID in PHP is to use the session_id() function, but you must call session_start() to successfully obtain it. 1. Call session_start() to start the session; 2. Use session_id() to read the session ID and output a string similar to abc123def456ghi789; 3. If the return is empty, check whether session_start() is missing, whether the user accesses for the first time, or whether the session is destroyed; 4. The session ID can be used for logging, security verification and cross-request communication, but security needs to be paid attention to. Make sure that the session is correctly enabled and the ID can be obtained successfully.

To extract substrings from PHP strings, you can use the substr() function, which is syntax substr(string$string,int$start,?int$length=null), and if the length is not specified, it will be intercepted to the end; when processing multi-byte characters such as Chinese, you should use the mb_substr() function to avoid garbled code; if you need to intercept the string according to a specific separator, you can use exploit() or combine strpos() and substr() to implement it, such as extracting file name extensions or domain names.

UnittestinginPHPinvolvesverifyingindividualcodeunitslikefunctionsormethodstocatchbugsearlyandensurereliablerefactoring.1)SetupPHPUnitviaComposer,createatestdirectory,andconfigureautoloadandphpunit.xml.2)Writetestcasesfollowingthearrange-act-assertpat

In PHP, the most common method is to split the string into an array using the exploit() function. This function divides the string into multiple parts through the specified delimiter and returns an array. The syntax is exploit(separator, string, limit), where separator is the separator, string is the original string, and limit is an optional parameter to control the maximum number of segments. For example $str="apple,banana,orange";$arr=explode(",",$str); The result is ["apple","bana

JavaScript data types are divided into primitive types and reference types. Primitive types include string, number, boolean, null, undefined, and symbol. The values are immutable and copies are copied when assigning values, so they do not affect each other; reference types such as objects, arrays and functions store memory addresses, and variables pointing to the same object will affect each other. Typeof and instanceof can be used to determine types, but pay attention to the historical issues of typeofnull. Understanding these two types of differences can help write more stable and reliable code.

The difference between async and defer is the execution timing of the script. async allows scripts to be downloaded in parallel and executed immediately after downloading, without guaranteeing the execution order; defer executes scripts in order after HTML parsing is completed. Both avoid blocking HTML parsing. Using async is suitable for standalone scripts such as analyzing code; defer is suitable for scenarios where you need to access the DOM or rely on other scripts.

std::chrono is used in C to process time, including obtaining the current time, measuring execution time, operation time point and duration, and formatting analysis time. 1. Use std::chrono::system_clock::now() to obtain the current time, which can be converted into a readable string, but the system clock may not be monotonous; 2. Use std::chrono::steady_clock to measure the execution time to ensure monotony, and convert it into milliseconds, seconds and other units through duration_cast; 3. Time point (time_point) and duration (duration) can be interoperable, but attention should be paid to unit compatibility and clock epoch (epoch)

In PHP, to pass a session variable to another page, the key is to start the session correctly and use the same $_SESSION key name. 1. Before using session variables for each page, it must be called session_start() and placed in the front of the script; 2. Set session variables such as $_SESSION['username']='JohnDoe' on the first page; 3. After calling session_start() on another page, access the variables through the same key name; 4. Make sure that session_start() is called on each page, avoid outputting content in advance, and check that the session storage path on the server is writable; 5. Use ses
