区域裁剪头像

    /**
     * 裁剪某个图片区域
     * @param $imgInfo array 图片 信息
     * ini_set("memory_limit","20 M"); 图片过大的话
     */
    public static function cutImgByArea($srcImage,$oldWidth,$oldHeight,$imgInfo,$newImgName){
        //是否需要缩放
        if ($oldWidth > $imgInfo['newWidth'] || $oldHeight > $imgInfo['newHeight']) {
            // 按区域比例等裁
            if($imgInfo['areaWidth']>0){
                $rate = $oldWidth / $imgInfo['areaWidth'];
                $imgInfo['newWidth']    = $imgInfo['newWidth']*$rate;
                $imgInfo['newHeight']   = $imgInfo['newHeight']*$rate;
                $imgInfo['x']           = $imgInfo['x']*$rate;
                $imgInfo['y']           = $imgInfo['y']*$rate;
            }
            // 新建空图片
            $thumb = imagecreatetruecolor($imgInfo['newWidth'], $imgInfo['newHeight']);
            // 组合新图片
            @imagecopyresampled($thumb, $srcImage, -$imgInfo['x'], -$imgInfo['y'], 0, 0, $oldWidth, $oldHeight, $oldWidth, $oldHeight);
            if (!imagejpeg($thumb, $newImgName, 100)) {
                $flag = 0;
            } else {
                $flag = 1;
            }
        } else if ($oldWidth == $newWidth || $oldHeight == $newHeight) {
            $flag = 2;
        } else {
            $flag = 3;
        }
        return $flag;
    }

 详细内容在附件

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值