Вход Регистрация
Файл: source/library/Image.php
Строк: 83
<?php

class Image {

    public 
$imageDir;
    private 
$info = '';
    public 
$newWidth;
    public 
$newHeight;
    public 
$top = 0;
    public 
$left = 0;
    public 
$quality = 60;
    public 
$imageFileName;
    public 
$pre;

    public function 
__construct($imageDir) {
        
$this->imageDir = $imageDir;
        
$this->pre = "other";
    }

    
/**
     * 
     * @param type $imageFileName
     * @return type
     */
    
public function miniThumbnail($imageFileName) {
        
$this->pre = "thumbnail_";
        return 
$this->resize($imageFileName, 75, 75);
    }

    
/**
     * 
     * @param type $imageFileName
     * @return type
     */
    
public function smallThumbnail($imageFileName) {
        
$this->pre = "thumbnail_";
        return 
$this->resize($imageFileName, 100, 100);
    }

    
/**
     * 
     * @param type $imageFileName
     * @return type
     */
    
public function mediumThumbnail($imageFileName) {
        
$this->pre = "thumbnail_";
        return 
$this->resize($imageFileName, 125, 125);
    }

    
/**
     * 
     * @param type $imageFileName
     * @return type
     */
    
public function largeThumbnail($imageFileName) {
        
$this->pre = "thumbnail_";
        return 
$this->resize($imageFileName, 150, 150);
    }

    
/**
     * 
     * @param type $file
     * @param type $width
     * @param type $height
     * @param type $top
     * @param type $left
     * @return type
     */
    
public function crop($imageFileName = '', $width = '', $height = '', $top = '', $left = '') {
        if (
$imageFileName != "") {
            
$this->imageFileName = $imageFileName;
        }
        if (
$width != '')
            
$this->newWidth = $width;
        if (
$height != '')
            
$this->newHeight = $height;
        if (
$top != '')
            
$this->top = $top;
        if (
$left != '')
            
$this->left = $left;
        return 
$this->process(true);
    }

    
/**
     * 
     * @param type $file
     * @param type $width
     * @param type $height
     * @param type $fixed
     * @return type
     */
    
public function resize($imageFileName = '', $width = '', $height = '', $fixed = 'width') {
        if (
$imageFileName != "") {
            
$this->imageFileName = $imageFileName;
        }
        if (
$width != '')
            
$this->newWidth = $width;
        if (
$height != '')
            
$this->newHeight = $height;
        return 
$this->process(false, $fixed);
    }

    
/**
     * 
     * @param type $crop
     * @param type $fixed
     * @return type
     */
    
private function process($crop, $fixed) {
        
$tmp = explode(".", $this->imageFileName);
        
$ext = strtolower(end($tmp));
        list(
$width, $height) = getimagesize($this->imageDir . $this->imageFileName);
        if (!
$crop) {
            
$ratio = $width / $height;
            if (
$fixed == "width") {
                if (
$this->newWidth / $this->newHeight > $ratio) {
                    
$this->newWidth = $this->newHeight * $ratio;
                } else {
                    
$this->newHeight = round($this->newWidth / $ratio);
                }
            } else {
                if (
$this->newWidth / $this->newHeight > $ratio) {
                    
$this->newHeight = $this->newWidth * $ratio;
                } else {
                    
$this->newWidth = round($this->newHeight / $ratio);
                }
            }
        }
        
$normal = imagecreatetruecolor($this->newWidth, $this->newHeight);
        if (
$ext == "jpg") {
            
$src = imagecreatefromjpeg($this->imageDir . $this->imageFileName);
        } else if (
$ext == "gif") {
            
$src = imagecreatefromgif($this->imageDir . $this->imageFileName);
        } else if (
$ext == "png") {
            
$src = imagecreatefrompng($this->imageDir . $this->imageFileName);
        }
        if (
$crop) {
            if (
imagecopy($normal, $src, 0, 0, $this->top, $this->left, $this->newWidth, $this->newHeight)) {
                
$this->info .= '<div>image was cropped and saved.</div>';
            }
            
$dir = $this->imageDir;
        } else {
            if (
imagecopyresampled($normal, $src, 0, 0, 0, 0, $this->newWidth, $this->newHeight, $width, $height)) {
                
$this->info .= '<div>image was resized and saved.</div>';
            }
            
$dir = $this->imageDir;
        }
        if (
$ext == "jpg" || $ext == "jpeg") {
            
imagejpeg($normal, $dir . $this->pre . $this->imageFileName, $this->quality);
        } else if (
$ext == "gif") {
            
imagegif($normal, $dir . $this->pre . $this->imageFileName);
        } else if (
$ext == "png") {
            
imagepng($normal, $dir . $this->pre . $this->imageFileName, 0);
        }
        
imagedestroy($src);

        return 
$src;
    }

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