新闻中心

记录团队成长点滴以及对技术、理念的探索,同时我们乐于分享!

php图片旋转函数

2020-08-08 12:06:15 分类:技术学堂

在开发的时间,我们经常遇到需要把图片旋转的功能,今天麦讯网络分享一个封装的函数。


  1. /**

  2. * 图片旋转

  3. * @param $src 图片地址

  4. * @param $direction 1顺时针90   2 逆时针90

  5. * @return string

  6. */

  7. function imgturn($src, $direction = 1){

  8.    $ext = pathinfo($src)['extension'];

  9.    switch ($ext) {

  10.        case 'gif':

  11.            $img = imagecreatefromgif($src);

  12.            break;

  13.        case 'jpg':

  14.        case 'jpeg':

  15.            $img = imagecreatefromjpeg($src);

  16.            break;

  17.        case 'png':

  18.            $img = imagecreatefrompng($src);

  19.            break;

  20.        default:

  21.            die('图片格式错误!');

  22.            break;

  23.    }

  24.    $width = imagesx($img);

  25.    $height = imagesy($img);

  26.    $img2 = imagecreatetruecolor($height, $width);

  27.    //顺时针旋转90度

  28.    if($direction == 1){

  29.        for ($x = 0; $x < $width; $x++) {

  30.            for($y=0; $y<$height; $y++) {

  31.                imagecopy($img2, $img, $height - 1 - $y, $x, $x, $y, 1, 1);

  32.            }

  33.        }

  34.    }else if($direction == 2) {

  35.        //逆时针旋转90度

  36.        for ($x = 0; $x < $height; $x++) {

  37.            for($y = 0; $y < $width; $y++) {

  38.                imagecopy($img2, $img, $x, $y, $width - 1 - $y, $x, 1, 1);

  39.            }

  40.        }

  41.    }

  42.    switch ($ext) {

  43.        case 'jpg':

  44.        case "jpeg":

  45.            imagejpeg($img2, $src, 100);

  46.            break;

  47.        case "gif":

  48.            imagegif($img2, $src, 100);

  49.            break;

  50.        case "png":

  51.            imagepng($img2, $src, 100);

  52.            break;

  53.        default:

  54.            die('图片格式错误!');

  55.            break;

  56.    }

  57.    imagedestroy($img);

  58.    imagedestroy($img2);

  59. }