Home >Backend Development >PHP Tutorial >Complete collection of PHP image processing functions

Complete collection of PHP image processing functions

不言
不言Original
2018-06-06 09:18:195874browse

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

php image processing code sharing, including scaling, cropping, zooming, flipping, rotating, transparency, sharpening, etc.
1. Create image resources
imagecreatetruecolor(width,height);
imagecreatefromgif(picture name);
imagecreatefrompng(image name);
imagecreatefromjpeg(image name);Draw various images imagegif(image resource, save path);
imagepng( )
imagejpeg();
2. Get the image attributes
imagesx(res//Width
imagesy(res//height
getimagesize(file path)
Returns an array with four cells. Index 0 contains the pixel value of the image width, index 1 contains the pixel value of the image height. Index 2 is a tag of the image type: 1 = GIF, 2 = JPG, 3 = PNG, 4 = SWF, 5 = PSD, 6 = BMP, 7 = TIFF (intel byte order), 8 = TIFF (motorola byte order), 9 = JPC, 10 = JP2, 11 = JPX, 12 = JB2, 13 = SWC, 14 = IFF, 15 = WBMP, 16 = XBM. These tags are new to PHP 4.3.0 IMAGETYPE constant corresponds. Index 3 is a text string with the content "height="yyy" width="xxx"", which can be directly used for IMG tags.
Destroy image resources
imagedestroy(picture resource);

3. Transparency processing
PNG and jpeg transparent colors are normal, only gif is abnormal
imagecolortransparent(resource image [,int color])//Set a color to a transparent color
imagecolorstotal()
imagecolorforindex() ;

4. Image cropping
imagecopyresized()
imagecopyresampled();

5. Add watermark (text, picture)
String encoding conversion string iconv (string $in_charset, string $out_charset, string $str)

6. Image rotation
imagerotate(); // Image flipping at a specified angle

7. Image flipping
Flip along the X axis along the Y axis

8. Sharpen

imagecolorsforindex()
imagecolorat()
Draw graphics on pictures $img=imagecreatefromgif("./images/map.gif");

  1. <?PHP
     /**
     * 图片锐化处理
     */
     $red= imagecolorallocate($img, 255, 0, 0);
     imageline($img, 0, 0, 100, 100, $red);
     imageellipse($img, 200, 100, 100, 100, $red);
     imagegif($img, "./images/map2.gif");
     imagedestroy($img);

## Normal picture scaling

  1. ##
    <?php
     $filename="./images/hee.jpg";
     $per=0.3;
     list($width, $height)=getimagesize($filename);
     $n_w=$width*$per;
     $n_h=$width*$per;
     $new=imagecreatetruecolor($n_w, $n_h);
     $img=imagecreatefromjpeg($filename);
     //拷贝部分图像并调整
     imagecopyresized($new, $img,0, 0,0, 0,$n_w, $n_h, $width, $height);
     //图像输出新图片、另存为
     imagejpeg($new, "./images/hee2.jpg");
     imagedestroy($new);
     imagedestroy($img);

The picture is scaled proportionally and the transparent color is not processed


  1. ##

    <?php
     function thumn($background, $width, $height, $newfile) {
     list($s_w, $s_h)=getimagesize($background);//获取原图片高度、宽度
     if ($width && ($s_w < $s_h)) {
     $width = ($height / $s_h) * $s_w;
     } else {
     $height = ($width / $s_w) * $s_h;
     }
     $new=imagecreatetruecolor($width, $height);
     $img=imagecreatefromjpeg($background);
     imagecopyresampled($new, $img, 0, 0, 0, 0, $width, $height, $s_w, $s_h);
     imagejpeg($new, $newfile);
     imagedestroy($new);
     imagedestroy($img);
     }
     thumn("images/hee.jpg", 200, 200, "./images/hee3.jpg");

gif transparent color processing


  1. ##

    <?php
     function thumn($background, $width, $height, $newfile) {
     list($s_w, $s_h)=getimagesize($background);
     if ($width && ($s_w < $s_h)) {
     $width = ($height / $s_h) * $s_w;
     } else {
     $height = ($width / $s_w) * $s_h;
     }
     $new=imagecreatetruecolor($width, $height);
     $img=imagecreatefromgif($background);
     $otsc=imagecolortransparent($img);
     if($otsc >=0 && $otst < imagecolorstotal($img)){//判断索引色
     $tran=imagecolorsforindex($img, $otsc);//索引颜色值
     $newt=imagecolorallocate($new, $tran["red"], $tran["green"], $tran["blue"]);
     imagefill($new, 0, 0, $newt);
     imagecolortransparent($new, $newt);
     }
     imagecopyresized($new, $img, 0, 0, 0, 0, $width, $height, $s_w, $s_h);
     imagegif($new, $newfile);
     imagedestroy($new);
     imagedestroy($img);
     }
     thumn("images/map.gif", 200, 200, "./images/map3.gif");

Picture cropping


  1. ##

    <?php
    /**
    * 图片裁剪处理
    * edit by www.jbxue.com
    */
    function cut($background, $cut_x, $cut_y, $cut_width, $cut_height, $location){
    $back=imagecreatefromjpeg($background);
    $new=imagecreatetruecolor($cut_width, $cut_height);
    imagecopyresampled($new, $back, 0, 0, $cut_x, $cut_y, $cut_width, $cut_height,$cut_width,$cut_height);
    imagejpeg($new, $location);
    imagedestroy($new);
    imagedestroy($back);
    }
    cut("./images/hee.jpg", 440, 140, 117, 112, "./images/hee5.jpg");
    ?>

  2. Add watermark to picture and text watermark


  1. ##
    <?PHP
     /**
     *
     * 图片添加文字水印
     */
     function mark_text($background, $text, $x, $y){
     $back=imagecreatefromjpeg($background);
     $color=imagecolorallocate($back, 0, 255, 0);
     imagettftext($back, 20, 0, $x, $y, $color, "simkai.ttf", $text);
     imagejpeg($back, "./images/hee7.jpg");
     imagedestroy($back);
     }
     mark_text("./images/hee.jpg", "细说PHP", 150, 250);
     //图片水印
     function mark_pic($background, $waterpic, $x, $y){
     $back=imagecreatefromjpeg($background);
     $water=imagecreatefromgif($waterpic);
     $w_w=imagesx($water);
     $w_h=imagesy($water);
     imagecopy($back, $water, $x, $y, 0, 0, $w_w, $w_h);
     imagejpeg($back,"./images/hee8.jpg");
     imagedestroy($back);
     imagedestroy($water);
     }
     mark_pic("./images/hee.jpg", "./images/gaolf.gif", 50, 200);

    图片旋转

    1. <?PHP
       /**
       * 图片旋转
       */
       $back=imagecreatefromjpeg("./images/hee.jpg");
       $new=imagerotate($back, 45, 0);
       imagejpeg($new, "./images/hee9.jpg");
       ?>

    图片水平翻转垂直翻转

    点击(此处)折叠或打开

    1. <?php
       /**
       * 图片水平翻转 垂直翻转
       */
       function turn_y($background, $newfile){
       $back=imagecreatefromjpeg($background);
       $width=imagesx($back);
       $height=imagesy($back);
       $new=imagecreatetruecolor($width, $height);
       for($x=0; $x < $width; $x++){
       imagecopy($new, $back, $width-$x-1, 0, $x, 0, 1, $height);
       }
       imagejpeg($new, $newfile);
       imagedestroy($back);
       imagedestroy($new);
       }
       function turn_x($background, $newfile){
       $back=imagecreatefromjpeg($background);
       $width=imagesx($back);
       $height=imagesy($back);
       $new=imagecreatetruecolor($width, $height);
       for($y=0; $y < $height; $y++){
       imagecopy($new, $back,0, $height-$y-1, 0, $y, $width, 1);
       }
       imagejpeg($new, $newfile);
       imagedestroy($back);
       imagedestroy($new);
       }
       turn_y("./images/hee.jpg", "./images/hee11.jpg");
       turn_x("./images/hee.jpg", "./images/hee12.jpg");
       ?>
      相关推荐:
    2. php 实用函数,php函数

    3. (转)PHP常用函数,php函数

The above is the detailed content of Complete collection of PHP image processing 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