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);
        }
  • 相关阅读:
    window下mySql数据库设置密码
    java——基础 在w10环境下如何配置java环境
    解决 idea自动更新jsp页面的问题
    在w7上使用Virtualbox安装Ubuntu 17
    关于在Intellij Idea中使用JSTL标签库报错的问题
    java.nio.BufferUnderflowException
    java——原型模式
    java基础——对象的equals和hashcode覆盖原则
    java基础——JDBC链接数据库的步骤
    java基础——基本数据类型
  • 原文地址:https://www.cnblogs.com/bkhdd/p/15745342.html
Copyright © 2011-2022 走看看