zoukankan      html  css  js  c++  java
  • php 裁剪图片

    /**
         * 裁剪图片
         * imageCropper
         * @param string $source_path 图片地址
         * @param string $w_file_path 要保存的地址
         */
        public  function imageCropper($source_path, $w_file_path)
        {
            list($target_width, $height, $type, $attr) = getimagesize($source_path);
            $target_height = $height - ceil($height/6) - 10;
            $source_info = getimagesize($source_path);
            $source_width = $source_info[0];
            $source_height = $source_info[1];
            $source_mime = $source_info['mime'];
            $source_ratio = $source_height / $source_width;
            $target_ratio = $target_height / $target_width;
            if ($source_ratio > $target_ratio) {
                // image-to-height
                $cropped_width = $source_width;
                $cropped_height = $source_width * $target_ratio;
                $source_x = 0;
                $source_y = ($source_height - $cropped_height) / 2;
            } elseif ($source_ratio < $target_ratio) {
                //image-to-widht
                $cropped_width = $source_height / $target_ratio;
                $cropped_height = $source_height;
                $source_x = ($source_width - $cropped_width) / 2;
                $source_y = 0;
            } else {
                //image-size-ok
                $cropped_width = $source_width;
                $cropped_height = $source_height;
                $source_x = 0;
                $source_y = 0;
            }
            switch ($source_mime) {
                case 'image/gif':
                    $source_image = imagecreatefromgif($source_path);
                    break;
                case 'image/jpeg':
                    $source_image = imagecreatefromjpeg($source_path);
                    break;
                case 'image/png':
                    $source_image = imagecreatefrompng($source_path);
                    break;
                default:
                    return;
                    break;
            }
            $target_image = imagecreatetruecolor($target_width, $target_height);
            $cropped_image = imagecreatetruecolor($cropped_width, $cropped_height);
            // copy
            imagecopy($cropped_image, $source_image, 0, 0, $source_x, $source_y, $cropped_width, $cropped_height);
            // zoom
            imagecopyresampled($target_image, $cropped_image, 0, 0, 0, 0, $target_width, $target_height, $cropped_width, $cropped_height);
    //        header('Content-Type: image/jpeg');
            $res = imagepng($target_image,$w_file_path);
            return $res;
    //        imagedestroy($source_image);
    //        imagedestroy($target_image);
    //        imagedestroy($cropped_image);
        }
  • 相关阅读:
    冲刺第七,八天(5月27,28日)
    作业4 阅读《构建之法》 第5.5 第6 第7章
    用户模拟+spec
    第二阶段
    第一次Spring总结
    小组互评和自评
    SPRINT四则运算(第二天)
    开始第一段SPRINT
    四则运算APP
    四则运算 测试与封装 (完善) 5.2 5.3
  • 原文地址:https://www.cnblogs.com/bkhdd/p/15745342.html
Copyright © 2011-2022 走看看