Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 3293 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |

<?php
namespace LeadersLinked\Library;


abstract class Image 
{

    /**
     * 
     * @param string $source
     * @param string $target_path
     * @param string $target_prefix
     * @param array $sizes
     * @param string $sufix
     * @return boolean
     */  
    /*
    public  static function upload($source, $target_path, $target_prefix,  $sizes = [], $sufix = '')
    {
        
        try {
            $data = file_get_contents($source);
            $img = imagecreatefromstring($data);
            
            if(!file_exists($target_path)) {
                mkdir($target_path, 0755);
            }
            
            if($img) {
                list($source_width, $source_height) = getimagesize($source);
                
                foreach($sizes as $size)
                {
                    list($target_width, $target_height) = explode('x', $size);
                    
                    $x = false;
                    if($x) {
                    $width_ratio    = $target_width / $source_width;
                    $height_ratio   = $target_height / $source_height;
                    if($width_ratio > $height_ratio) {
                        $resized_width = $target_width;
                        $resized_height = $source_height * $width_ratio;
                    } else {
                        $resized_height = $target_height;
                        $resized_width = $source_width * $height_ratio;
                    }
                    
                    $resized_width = round($resized_width);
                    $resized_height = round($resized_height);
                    
                    $offset_width = round(($target_width - $resized_width) / 2);
                    $offset_height = round(($target_height - $resized_height) / 2);
                    
                    
                    $new_image = imageCreateTrueColor($target_width, $target_height);
                    imageAlphaBlending($new_image, False);
                    imageSaveAlpha($new_image, True);
                    $transparent = imageColorAllocateAlpha($new_image, 0, 0, 0, 127);
                    imagefill($new_image, 0, 0, $transparent);
                    imageCopyResampled($new_image, $img , $offset_width, $offset_height, 0, 0, $resized_width, $resized_height, $source_width, $source_height);
                    }
                    
                    $width_ratio    = $target_width / $source_width;
                    $height_ratio   = $target_height / $source_height;
                    $radio = $width_ratio > $height_ratio ?  $height_ratio : $width_ratio;
                    
                    $resized_width = round($source_width * $radio);
                    $resized_height = round($source_height * $radio);
                    
                    $offset_width = round(($target_width - $resized_width) / 2);
                    $offset_height = round(($target_height - $resized_height) / 2);
                    
                    $new_image = imageCreateTrueColor($target_width, $target_height);
                    imageAlphaBlending($new_image, False);
                    imageSaveAlpha($new_image, True);
                    $transparent = imageColorAllocateAlpha($new_image, 0, 0, 0, 127);
                    imagefill($new_image, 0, 0, $transparent);
                    imageCopyResampled($new_image, $img , $offset_width, $offset_height, 0, 0, $resized_width, $resized_height, $source_width, $source_height);
                    
                    
                    $target = $target_path . DIRECTORY_SEPARATOR . $target_prefix  . $size . $sufix . '.png';
                    if(file_exists($target)) {
                        @unlink($target);
                    }
                    
                    
                    imagepng($new_image, $target);
                }
            }
            
            unlink($source);
            
           return true;
            
        } 
        catch (\Throwable $e)
        {
            error_log($e->getTraceAsString());
            return false;
        }
    }*/
    
    /**
     * 
     * @param string $source
     * @param string $target_path
     * @param string $target_filename
     * @param number $target_width
     * @param number $target_height
     * @param boolean $crop_to_dimensions
     * @return boolean
     */
    public  static function uploadImage($source, $target_path, $target_filename, $target_width, $target_height,  $crop_to_dimensions = true )
    {
        
       
        
        try {
            $data = file_get_contents($source);
            $img = imagecreatefromstring($data);
            
            if(!file_exists($target_path)) {
                mkdir($target_path, 0755);
            }
            
            if($img) {
                list($source_width, $source_height) = getimagesize($source);
                
                if($crop_to_dimensions) {
                    $width_ratio = $target_width / $source_width;
                    //print 'Width Ratio: ' . $width_ratio . '<br />';
                    $height_ratio = $target_height / $source_height;
                    //print 'Height Ratio: ' . $height_ratio . '<br />';
                    if($width_ratio > $height_ratio) {
                        //print 'Width Wins<br />';
                        $resized_width = $target_width;
                        $resized_height = $source_height * $width_ratio;
                    } else {
                        //print 'Height Wins<br />';
                        $resized_height = $target_height;
                        $resized_width = $source_width * $height_ratio;
                    }
                } else {
                    $width_ratio = $target_width / $source_width;
                    //print 'Width Ratio: ' . $width_ratio . '<br />';
                    $resized_width = $target_width;
                    $resized_height = $source_height * $width_ratio;
                    //print 'Resized: ' . $resized_width . 'x' . $resized_height . '<br />';
                    if($resized_height > $target_height) {
                        $height_ratio = $target_height / $resized_height;
                        $resized_height = $target_height;
                        //print 'Height Ratio: ' . $height_ratio . '<br />';
                        $resized_width = $resized_width * $height_ratio;
                        //print 'Resized: ' . $resized_width . 'x' . $resized_height . '<br />';
                    }
                }
                /*
                $width_ratio    = $target_width / $source_width;
                $height_ratio   = $target_height / $source_height;
                if($width_ratio > $height_ratio) {
                    $resized_width = $target_width;
                    $resized_height = $source_height * $width_ratio;
                } else {
                    $resized_height = $target_height;
                    $resized_width = $source_width * $height_ratio;
                }*/
                    
                $resized_width = round($resized_width);
                $resized_height = round($resized_height);
                    
                $offset_width = round(($target_width - $resized_width) / 2);
                $offset_height = round(($target_height - $resized_height) / 2);
                    
                    
                $new_image = imageCreateTrueColor($target_width, $target_height);
                imageAlphaBlending($new_image, False);
                imageSaveAlpha($new_image, True);
                $transparent = imageColorAllocateAlpha($new_image, 0, 0, 0, 127);
                imagefill($new_image, 0, 0, $transparent);
               // imageCopyResampled($new_image, $img , $offset_width, $offset_height, 0, 0, $resized_width, $resized_height, $source_width, $source_height);
                imageCopyResampled($new_image, $img , $offset_width, $offset_height, 0, 0, $resized_width, $resized_height, $source_width, $source_height);
                
                    
                $target = $target_path . DIRECTORY_SEPARATOR . $target_filename;
                if(file_exists($target)) {
                    @unlink($target);
                }
                    
                    
                imagepng($new_image, $target);
            }
            
            unlink($source);
            
            return true;
            
        }
        catch (\Throwable $e)
        {
            error_log($e->getTraceAsString());
            return false;
        }
    }
    
    /**
     * 
     * @param string $source
     * @param string $target_path
     * @param string $target_filename
     * @return boolean
     */
    public  static function uploadFile($source, $target_path, $target_filename)
    {
        
        
        
        try {
            $data = file_get_contents($source);
            $img = imagecreatefromstring($data);
            
            if(!file_exists($target_path)) {
                mkdir($target_path, 0755);
            }
            
            if($img) {
                list($source_width, $source_height) = getimagesize($source);
                
                $width_ratio    = $target_width / $source_width;
                $height_ratio   = $target_height / $source_height;
                if($width_ratio > $height_ratio) {
                    $resized_width = $target_width;
                    $resized_height = $source_height * $width_ratio;
                } else {
                    $resized_height = $target_height;
                    $resized_width = $source_width * $height_ratio;
                }
                
                $resized_width = round($resized_width);
                $resized_height = round($resized_height);
                
                $offset_width = round(($target_width - $resized_width) / 2);
                $offset_height = round(($target_height - $resized_height) / 2);
                
                
                $new_image = imageCreateTrueColor($target_width, $target_height);
                imageAlphaBlending($new_image, False);
                imageSaveAlpha($new_image, True);
                $transparent = imageColorAllocateAlpha($new_image, 0, 0, 0, 127);
                imagefill($new_image, 0, 0, $transparent);
                imageCopyResampled($new_image, $img , $offset_width, $offset_height, 0, 0, $resized_width, $resized_height, $source_width, $source_height);
                
                
                $target = $target_path . DIRECTORY_SEPARATOR . $target_filename;
                if(file_exists($target)) {
                    @unlink($target);
                }
                
                
                imagepng($new_image, $target);
            }
            
            unlink($source);
            
            return true;
            
        }
        catch (\Throwable $e)
        {
            error_log($e->getTraceAsString());
            return false;
        }
    }

    /**
     * 
     * @param string $path
     * @param string $filename
     * @return boolean
     */
    public static function delete($path, $filename)
    {
        try {
            if (is_dir($path)){
                if ($dh = opendir($path)) {
                    while (($file = readdir($dh)) !== false)
                    {
                        if($file == '.' || $file == '..') {
                            continue;
                        }
                        
                        if($file == $filename) {
                            unlink($path . DIRECTORY_SEPARATOR . $file);
                        }
                    }
                    closedir($dh);
                }
            }
        
            return true;
            
        }
        catch (\Throwable $e)
        {
            error_log($e->getTraceAsString());
            return false;
        }
    }
    
}