%PDF- %PDF-
| Direktori : /home/vacivi36/intranet.vacivitta.com.br/protected/humhub/libs/ |
| Current File : /home/vacivi36/intranet.vacivitta.com.br/protected/humhub/libs/ProfileBannerImage.php |
<?php
/**
* @link https://www.humhub.org/
* @copyright Copyright (c) 2017 HumHub GmbH & Co. KG
* @license https://www.humhub.com/licences
*/
namespace humhub\libs;
use humhub\modules\file\libs\ImageHelper;
use Imagine\Image\Box;
use Imagine\Image\ManipulatorInterface;
use yii\imagine\Image;
use yii\web\UploadedFile;
/**
* ProfileBannerImage is responsible for the profile banner images.
*
* This class handles all tasks related to profile images.
* Will used for Space or User Profiles.
*
* Prefixes:
* "" = Resized profile image
* "_org" = Orginal uploaded file
*
* @since 0.5
* @author Luke
*/
class ProfileBannerImage extends ProfileImage
{
/**
* @var Integer width of the Image
*/
protected $width = 1134;
/**
* @var Integer height of the Image
*/
protected $height = 192;
/**
* @var String folder name inside the uploads directory
*/
protected $folder_images = 'profile_image/banner';
/**
* Constructor of Profile Image
*
* UserId is optional, if not given the current user will used
*
* @param string $guid
* @param string $defaultImage
*/
public function __construct($guid, $defaultImage = 'default_banner')
{
parent::__construct($guid, $defaultImage);
}
/**
* Sets a new profile image by given temp file
*
* @param \yii\web\UploadedFile $file
* @throws \yii\base\Exception
*/
public function setNew($file)
{
if ($file instanceof UploadedFile) {
$file = $file->tempName;
}
$this->delete();
// Make sure original file is max. 800 width
$image = Image::getImagine()->open($file);
ImageHelper::fixJpegOrientation($image, $file);
if ($image->getSize()->getWidth() > 2000) {
$image->resize($image->getSize()->widen(2000));
}
$image->save($this->getPath('_org'), ['format' => 'jpg']);
// Create version
$image->thumbnail(new Box($this->width, $this->height), ManipulatorInterface::THUMBNAIL_OUTBOUND)
->save($this->getPath(''));
}
/**
* @inheritDoc
*/
public function render($width = 32, $cfg = [])
{
if(is_int($width)) {
$width .= 'px';
}
Html::addCssStyle($cfg, ['width' => $width]);
return Html::img($this->getUrl(),$cfg);
}
}