使用ThinkPHP进行图片批量裁剪

使用ThinkPHP进行图片批量裁剪

使用ThinkPHP进行图片批量裁剪

步骤:
          1、读取到文件夹下面的所有图片
           2、循环通过thumb2方法进行裁剪

/**
 * 裁剪图片
 */
public function cropImages(){
    $imgArr = $this->getImages();
    import('ORG.Util.Image');
    $IMG = new Image();
    foreach($imgArr as $k=>$v){
        $imgPath = APP_PATH."goods/".$v["path"];
        $result = $IMG::thumb2($imgPath,APP_PATH."goodsResult/".$v["path"],"",100,100);
        echo $result."<br>";
    }
}
/**
 * 获取文件夹下所有图片
 */
public function getImages(){
    $handle = opendir(APP_PATH."/goods/");
    $imageList = array();
    while (false !== ($file = readdir($handle))) {
        $fileArr = explode(".", $file);
        if($fileArr[1] == "jpg" || $fileArr[1] == "png" || $fileArr[1] == "gif"){
            $tempArr = array();
            $tempArr['path'] = $file;
            array_push($imageList,$tempArr);
        }
    }
    return $imageList;
}




thumb2方法定义源码(\ThinkPHP\Extend\Library\ORG\Util\Image.class.php)

/**
 * 生成特定尺寸缩略图 解决原版缩略图不能满足特定尺寸的问题 PS:会裁掉图片不符合缩略图比例的部分
 * @static
 * @access public
 * @param string $image  原图
 * @param string $type 图像格式
 * @param string $thumbname 缩略图文件名
 * @param string $maxWidth  宽度
 * @param string $maxHeight  高度
 * @param boolean $interlace 启用隔行扫描
 * @return void
 */
static function thumb2($image, $thumbname, $type='', $maxWidth=200, $maxHeight=50, $interlace=true)