PHP裁剪图片

       //创建一个裁剪大小的画布

        $thumb = imagecreatetruecolor($width, $height);

        //原base64图片(其他的转成base64类型),创建新的图像

        $im = imagecreatefrompng($data);

       //判断照片位置是否旋转过

       $exif = exif_read_data($image);

       if (isset($exif['Orientation'])) {

            $orientation = $exif['Orientation'];

             switch ($orientation) {

                     case 2:

                     imageflip($im, IMG_FLIP_HORIZONTAL);

                      break;

                      case 3:

                      $im = imagerotate($im, 180, 0);

                      break;

                      case 4:

                       imageflip($im, IMG_FLIP_VERTICAL);

                       break;

                       case 5:

                       $im = imagerotate($im, -90, 0);

                        imageflip($im, IMG_FLIP_HORIZONTAL);

                        break;

                        case 6:

                        $im = imagerotate($im, -90, 0);

                        break;

                        case 7:

                        $im = imagerotate($im, 90, 0);

                         imageflip($im, IMG_FLIP_HORIZONTAL);

                          break;

                          case 8:

                         $im = imagerotate($im, 90, 0);

                          break;

    }

}


        //根据像素点(x,y,width,height),复制图像的一部分到画布

        imagecopy($thumb, $im, 0, 0, $left_x, $left_y, $width, $height);

        ob_start();

        //输出图片到缓存区

        imagepng($thumb);

        //从缓存区获取内容

        $contents = ob_get_contents();

        //清空并关闭缓存区

        ob_end_clean();

        //输出裁剪后的base64图片

        base64_encode($contents);

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容