Home >Backend Development >PHP Tutorial >PHP basic learning: image processing

PHP basic learning: image processing

jacklove
jackloveOriginal
2018-05-22 13:49:251576browse

In the process of learning PHP, you will encounter image processing. This article will introduce the image processing method.

8e7e4baab3aea698596f46927e4861f1

<?php 
//     图片处理gd2配置文件修改 
?> 
   
<!-- 用图片处理函数画一张图 --> 
<?php 
//     $img = imagecreatetruecolor(500, 500); 
//     $red = imagecolorallocate($img, 255, 0, 0); 
//     $green = imagecolorallocate($img, 0, 255, 0); 
//     $blue = imagecolorallocate($img, 0, 0, 255); 
//     $pur = imagecolorallocate($img, 255, 0, 255); 
//     $yellow = imagecolorallocate($img, 121, 72, 0); 
       
//     imagefilledrectangle($img, 0, 0, 500, 500, $green); 
//     imageline($img, 0, 0, 500, 500, $red); 
//     imageline($img, 500, 0, 0, 500, $blue); 
       
//     imagefilledellipse($img, 250, 250, 200, 200, $yellow); 
       
//     imagefilledellipse($img, 200, 200, 300, 300, $blue); 
       
//     imagejpeg($img, &#39;haha.jpg&#39;); 
//     echo "<img src=&#39;haha.jpg&#39;>"; 
//     imagedestroy($img); 
?> 
   
<!-- 开发验证码(生成验证码) --> 
<?php 
    check_code(); 
    function check_code($width = 100, $height = 50, 
        $num = 4, $type = &#39;jpeg&#39;){ 
        $img = imagecreate($width, $height); 
        $string = &#39;&#39;; 
        for ($i = 0;$i < $num; $i++){ 
            $rand = mt_rand(0, 2); 
            switch ($rand) { 
                case 0: 
                    $ascii = mt_rand(48, 57); 
                    break; 
                case 1: 
                    $ascii = mt_rand(65, 90); 
                    break; 
                case 2: 
                    $ascii = mt_rand(97, 122); 
                    break; 
            } 
            $string .= sprintf(&#39;%c&#39;, $ascii); 
        } 
        imagefilledrectangle($img, 0, 0, $width, $height, randBg($img)); 
        for ($i = 0;$i < 50; $i++){ 
            imagesetpixel($img, mt_rand(0, $width),  
                mt_rand(0, $height), randPix($img)); 
        } 
        for ($i = 0;$i < $num;$i++){ 
            $x = floor($width/$num) * $i + 2; 
            $y = mt_rand(0, $height - 15); 
               
            imagechar($img, 5, $x, $y, $string[$i], randPix($img)); 
        } 
           
        $func = &#39;image&#39; . $type; 
        $header = &#39;Content-type:image/&#39;.$type; 
        if (function_exists($func)) { 
            header($header); 
            $func($img); 
        }else { 
           echo &#39;图片类型不支持&#39;;  
        } 
        imagedestroy($img); 
        return $string; 
    } 
    function randBg($img){ 
        return imagecolorallocate($img, mt_rand(130, 255), 
            mt_rand(130, 255), mt_rand(130, 255)); 
    } 
    function randPix($img){ 
        return imagecolorallocate($img, mt_rand(0, 120),  
            mt_rand(0, 120), mt_rand(0, 120)); 
    } 
?>  
<!-- 图像缩放和剪裁技术 --> 
<?php 
    $image = imagecreatefrompng(&#39;fbb.png&#39;); 
       
    $percent = 0.1; 
    list($width, $height) = getimagesize(&#39;fbb.png&#39;); 
       
    $new_width = $width * $percent; 
    $new_height = $height * $percent; 
       
    $new_image = imagecreatetruecolor($new_width, $new_height); 
    imagecopyresampled($new_image, $image, 0, 0, 
        0, 0, $new_width, $new_height, $width, $height); 
    header(&#39;content-type:image/jpeg&#39;); 
    imagejpeg($new_image); 
?> 
<!-- 图片水印处理 --> 
<?php 
    $dst = imagecreatefrompng(&#39;https://img.php.cn/upload/course/000/ 
        000/002/5833ebba648cf229.png&#39;); 
    $src = imagecreatefrompng(&#39;https://img.php.cn/ 
        upload/course/000/000/002/5833ebe90cc11285.png&#39;); 
    $dst_info = getimagesize(&#39;5833ebba648cf229.png&#39;); 
    $src_info = getimagesize(&#39;5833ebe90cc11285.png&#39;); 
       
    $dst_x = $dst_info[0] - $src_info[0]; 
    $dst_y = $dst_info[1] - $src_info[1]; 
    imagecopymerge($dst, $src, $dst_x, $dst_y, 0, 0,  
        $src_info[0], $src_info[1], 100); 
    header(&#39;Content-type:image/png&#39;); 
    imagepng($dst); 
    imagedestroy($dst); 
    imagedestroy($src); 
?>   
<!-- 做一个智能的图片水印函数 --> 
<?php        
?>

This article explains the related methods of image processing. For more related content, please pay attention to the php Chinese website.

Related recommendations:

Thief program through cURL

php session management and control

php basic learning: error handling

The above is the detailed content of PHP basic learning: image processing. 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