Home  >  Article  >  Backend Development  >  PHP basics five image processing

PHP basics five image processing

不言
不言Original
2018-04-23 09:47:091790browse

This article introduces the basics of image processing in PHP, which has a certain reference value. Now I share it with everyone. Friends in need can refer to it

<!-- 图像处理 -->
<?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
    
?>

Related recommendations:

php basic four

php basic three


The above is the detailed content of PHP basics five 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