UploaderComponent.php 1.45 KB
<?php

namespace common\modules\file\components;
use Yii;
use yii\base\Component;
use Imagine\Gd\Imagine;
use Imagine\Image\Box;
use yii\imagine\Image;

class UploaderComponent extends Component {

    public function isBigger($width,$height,$w,$h)
    {
        if($width>$w){
            return true;
        }else if($height >$h) {
            return true;
        }
        return false;
    }

    public function resizeImg($w, $h, $imageAlias,$imageAliasSave){
        $img = Image::getImagine()->open(Yii::getAlias($imageAlias));

        $size = $img->getSize();

        $width = $size->getWidth();
        $height = $size->getHeight();

        $e_width = $w/$h;
        $e_height = $h/$w;

        $e1_width = $width/$height;
        $e1_height = $height/$width;



        if($e_width<$e1_width){

            $new_width = $width*($e_width/$e1_width);

            $y = 0;
            $x = $width/ 2-($new_width/2);
            $width = $new_width;

        }else {

            $new_height = $height*($e_height/$e1_height);
            $x = 0;
            $y = $height/2-($new_height/2);
            $height = $new_height;
        }




        Image::crop($imageAlias, $width, $height,[$x,$y])
            ->save(Yii::getAlias($imageAliasSave), ['quality' =>
                100]);


        $imagine = new Imagine();
        $imagine->open($imageAliasSave)
            ->resize(new Box($w, $h))
            ->save($imageAliasSave, array('flatten' => false));


    }


}