Вход Регистрация
Файл: concrete5.7.5.6/concrete/src/File/Image/BasicThumbnailer.php
Строк: 122
<?php
namespace ConcreteCoreFileImage;

use 
Config;
use 
Image;
use 
Loader;
use 
ImagineImageBox;
use 
ImagineImageImageInterface;
use 
ConcreteCoreFileFile;

class 
BasicThumbnailer
{

    protected 
$jpegCompression;

    
/**
     * Overrides the default or defined JPEG compression level per instance
     * of the image helper. This allows for a single-use for a particularly
     * low or high compression value. Passing a non-integer value will reset
     * to the default system setting (DEFINE or 80)
     * @param int $level the level of compression
     * @return self
     */
    
public function setJpegCompression($level) {
        if (
is_int($level)) {
            
$this->jpegCompression min(max($level0), 100);
        }
        return 
$this;
    }

    protected function 
getJpegCompression()
    {
        if (!isset(
$this->jpegCompression)) {
            
$this->jpegCompression Config::get('concrete.misc.default_jpeg_image_compression');
        }
        return 
$this->jpegCompression;
    }
    
/**
     * Deprecated. Use the Image facade instead.
     * @deprecated
     */
    
public function create($mixed$newPath$width$height$fit false)
    {
        if (
$mixed instanceof ImagineImageImageInterface) {
            
$image $mixed;
        } else {
            
$image Image::open($mixed);
        }
        if (
$fit) {
            return 
$image->thumbnail(new Box($width$height), ImageInterface::THUMBNAIL_OUTBOUND)->save($newPath, array('quality'=>$this->getJpegCompression()));

        } else {

            if (
$height 1) {
                
$image->thumbnail($image->getSize()->widen($width))->save($newPath, array('quality'=>$this->getJpegCompression()));
            } else if (
$width 1) {
                
$image->thumbnail($image->getSize()->heighten($height))->save($newPath, array('quality'=>$this->getJpegCompression()));
            } else {
                
$image->thumbnail(new Box($width$height))->save($newPath, array('quality'=>$this->getJpegCompression()));
            }
        }
     }

    
/**
     * Deprecated
     */
    /**
     * Returns a path to the specified item, resized and/or cropped to meet max width and height. $obj can either be
     * a string (path) or a file object.
     * Returns an object with the following properties: src, width, height
     * @param mixed $obj
     * @param int $maxWidth
     * @param int $maxHeight
     * @param bool $crop
     */
    
public function getThumbnail($obj$maxWidth$maxHeight$crop false) {
        
$fID false;
        
$fh Loader::helper('file');
        if (
$obj instanceof File) {
            try {
                
$fr $obj->getFileResource();
              
$fID $obj->getFileID();
                
$filename md5(implode(':', array($fID$maxWidth$maxHeight$crop$fr->getTimestamp())))
                . 
'.' $fh->getExtension($fr->getPath());
            } catch(
Exception $e) {
                
$filename '';
            }
        } else {
            
$filename md5(implode(':', array($obj$maxWidth$maxHeight$cropfilemtime($obj))))
                . 
'.' $fh->getExtension($obj);
        }

        if (!
file_exists(Config::get('concrete.cache.directory') . '/' $filename)) {
            if (
$obj instanceof File) {
                
$image Image::load($fr->read());
            } else {
                
$image Image::open($obj);
            }
            
// create image there
            
$this->create($image,
                          
Config::get('concrete.cache.directory') . '/' $filename,
                
$maxWidth,
                
$maxHeight,
                
$crop);
        }

        
$src REL_DIR_FILES_CACHE '/' $filename;
        
$abspath Config::get('concrete.cache.directory') . '/' $filename;
        
$thumb = new stdClass;
        if (isset(
$abspath) && file_exists($abspath)) {
            
$thumb->src $src;
            
$dimensions getimagesize($abspath);
            
$thumb->width $dimensions[0];
            
$thumb->height $dimensions[1];
            return 
$thumb;
        }
    }

    
/**
     * Deprecated
     */
    
public function outputThumbnail($mixed$maxWidth$maxHeight$alt null$return false$crop false) {
        
$thumb $this->getThumbnail($mixed$maxWidth$maxHeight$crop);
        
$html '<img class="ccm-output-thumbnail" alt="' $alt '" src="' $thumb->src '" width="' $thumb->width '" height="' $thumb->height '" />';
        if (
$return) {
            return 
$html;
        } else {
            print 
$html;
        }
    }

}
Онлайн: 3
Реклама