ACC SHELL

Path : /srv/www/vhosts/toptisk/library/Core/
File Upload :
Current File : /srv/www/vhosts/toptisk/library/Core/Image.php

<?php

/**
 * obecne metody pro praci s obrazky
 * pouzitelne napric celym projektem
 */
class Core_Image
{
    
    /** Vrácení rozměrů obrázku po zmenšení
    * @param string název zmenšovaného souboru
    * @param int maximální šířka výsledného obrázku, 0 pokud na ní nezáleží
    * @param int maximální výška výsledného obrázku, 0 pokud na ní nezáleží
    * @return array ($width, $height) výsledná šířka a výška
    * @copyright Jakub Vrána, http://php.vrana.cz/
    */
    function image_shrink_size($file_in, $max_x = 0, $max_y = 0) {
        list($width, $height) = getimagesize($file_in);
        if (!$width || !$height) {
            return array(0, 0);
        }
        if ($max_x && $width > $max_x) {
            $height = round($height * $max_x / $width);
            $width = $max_x;
        }
        if ($max_y && $height > $max_y) {
            $width = round($width * $max_y / $height);
            $height = $max_y;
        }
        return array($width, $height);
    }

    /** Převzorkování obrázku GIF, PNG nebo JPG
    * @param string název zmenšovaného souboru
    * @param string název výsledného souboru
    * @param int šířka výsledného obrázku
    * @param int výška výsledného obrázku
    * @return bool true, false v případě chyby
    * @copyright Jakub Vrána, http://php.vrana.cz/
    */
    function image_resize($file_in, $file_out, $width, $height)
    {
        $imagesize = getimagesize($file_in);
        if ((!$width && !$height) || !$imagesize[0] || !$imagesize[1])
        {
            return false;
        }

        if ($imagesize[0] == $width && $imagesize[1] == $height)
        {
            return copy($file_in, $file_out);
        }

        switch ($imagesize[2])
        {
            case 1: $img = imagecreatefromgif($file_in); break;
            case 2: $img = imagecreatefromjpeg($file_in); break;
            case 3: $img = imagecreatefrompng($file_in); break;
            default: return false;
        }

        if (!$img)
        {
            return false;
        }

        $img2 = imagecreatetruecolor($width, $height);
        imagecopyresampled($img2, $img, 0, 0, 0, 0, $width, $height, $imagesize[0], $imagesize[1]);
        
        if ($imagesize[2] == 2)
        {
            return imagejpeg($img2, $file_out);
        }
        elseif ($imagesize[2] == 1 && function_exists("imagegif"))
        {
            imagetruecolortopalette($img2, false, 256);
            return imagegif($img2, $file_out);
        }
        else
        {
            return imagepng($img2, $file_out);
        }
    }
}

ACC SHELL 2018