Пример #1
0
 function checkImages()
 {
     // if the thumbnail generation is enabled
     if ($this->config['generate_thumbnails'] == 1) {
         // basic images params
         $img_width = $this->config['config']->gk_game_magazine->gk_game_magazine_image_width;
         $img_height = $this->config['config']->gk_game_magazine->gk_game_magazine_image_height;
         $img_bg = $this->config['config']->gk_game_magazine->gk_game_magazine_image_bg;
         $quality = $this->config['config']->gk_game_magazine->gk_game_magazine_quality;
         // check the slides
         foreach ($this->config['image_show_data'] as $slide) {
             $stretch = $slide->stretch == 'nostretch' ? false : true;
             GKIS_GameMagazine_Image::createThumbnail($slide->image, $this->config, $img_width, $img_height, $img_bg, $stretch, $quality);
         }
     }
 }
Пример #2
0
 function createThumbnail($path, $config, $width, $height, $image_bg, $image_stretch, $quality, $thumb = '')
 {
     if (GKIS_GameMagazine_Image::checkCache(GKIS_GameMagazine_Image::translateName($path, $config['module_id'], $thumb), $config['last_modification'])) {
         return TRUE;
     } else {
         // importing classes
         jimport('joomla.filesystem.file');
         jimport('joomla.filesystem.folder');
         jimport('joomla.filesystem.path');
         //script configuration - increase memory limit to 64MB
         ini_set('memory_limit', '64M');
         // cache dir
         $cache_dir = JPATH_ROOT . DS . 'modules' . DS . 'mod_image_show_gk4' . DS . 'cache' . DS;
         // file path
         $file = GKIS_GameMagazine_Image::getRealPath($path);
         // filename
         $filename = GKIS_GameMagazine_Image::translateName($path, $config['module_id']);
         // Getting informations about image
         if (is_file($file)) {
             $imageData = getimagesize($file);
             // loading image depends from type of image
             if ($imageData['mime'] == 'image/jpeg' || $imageData['mime'] == 'image/pjpeg' || $imageData['mime'] == 'image/jpg') {
                 $imageSource = @imagecreatefromjpeg($file);
             } elseif ($imageData['mime'] == 'image/gif') {
                 $imageSource = @imagecreatefromgif($file);
             } else {
                 $imageSource = @imagecreatefrompng($file);
             }
             // here can be exist an error when image is to big - then class return blank page
             // setting image size in variables
             $imageSourceWidth = imagesx($imageSource);
             $imageSourceHeight = imagesy($imageSource);
             // Creating blank canvas
             $imageBG = imagecreatetruecolor($width, $height);
             // If image is JPG or GIF
             if ($imageData['mime'] == 'image/jpeg' || $imageData['mime'] == 'image/pjpeg' || $imageData['mime'] == 'image/jpg' || $imageData['mime'] == 'image/gif') {
                 // when bg is set to transparent - use black background
                 if ($image_bg == 'transparent') {
                     $bgColorR = 0;
                     $bgColorG = 0;
                     $bgColorB = 0;
                 } else {
                     // in other situation - translate hex to RGB
                     $bg = $image_bg;
                     if (strlen($bg) == 4) {
                         $bg = $bg[0] . $bg[1] . $bg[1] . $bg[2] . $bg[2] . $bg[3] . $bg[3];
                     }
                     $hex_color = strtolower(trim($bg, '#;&Hh'));
                     $bg = array_map('hexdec', explode('.', wordwrap($hex_color, ceil(strlen($hex_color) / 3), '.', 1)));
                     $bgColorR = $bg[0];
                     $bgColorG = $bg[1];
                     $bgColorB = $bg[2];
                 }
                 // Creating color
                 $rgb = imagecolorallocate($imageBG, $bgColorR, $bgColorG, $bgColorB);
                 // filling canvas with new color
                 imagefill($imageBG, 0, 0, $rgb);
             } else {
                 // for PNG images
                 $imageBG = imagecreatetruecolor($width, $height);
                 // enable transparent background
                 if ($image_bg == 'transparent') {
                     // create transparent color
                     $rgb = imagecolorallocatealpha($imageBG, 0, 0, 0, 127);
                 } else {
                     // create normal color
                     $bg = $image_bg;
                     // translate hex to RGB
                     $hex_color = strtolower(trim($bg, '#;&Hh'));
                     $bg = array_map('hexdec', explode('.', wordwrap($hex_color, ceil(strlen($hex_color) / 3), '.', 1)));
                     // creating color
                     $rgb = imagecolorallocate($imageBG, $bg[0], $bg[1], $bg[2]);
                 }
                 // filling the canvas
                 imagefill($imageBG, 0, 0, $rgb);
                 // enabling transparent settings for better quality
                 imagealphablending($imageBG, false);
                 imagesavealpha($imageBG, true);
             }
             // when stretching is disabled
             if (!$image_stretch) {
                 // calculate ratio for first scaling
                 $ratio = $imageSourceWidth > $imageSourceHeight ? $width / $imageSourceWidth : $height / $imageSourceHeight;
                 // calculate new image size
                 $imageSourceNWidth = $imageSourceWidth * $ratio;
                 $imageSourceNHeight = $imageSourceHeight * $ratio;
                 // calculate ratio for second scaling
                 if ($width > $height) {
                     if ($imageSourceNHeight > $height) {
                         $ratio2 = $height / $imageSourceNHeight;
                         $imageSourceNHeight *= $ratio2;
                         $imageSourceNWidth *= $ratio2;
                     }
                 } else {
                     if ($imageSourceNWidth > $width) {
                         $ratio2 = $width / $imageSourceNWidth;
                         $imageSourceNHeight *= $ratio2;
                         $imageSourceNWidth *= $ratio2;
                     }
                 }
                 // setting position of putting thumbnail on canvas
                 $base_x = floor(($width - $imageSourceNWidth) / 2);
                 $base_y = floor(($height - $imageSourceNHeight) / 2);
             } else {
                 // when stretching is disabled
                 $imageSourceNWidth = $width;
                 $imageSourceNHeight = $height;
                 $base_x = 0;
                 $base_y = 0;
             }
             // copy image
             imagecopyresampled($imageBG, $imageSource, $base_x, $base_y, 0, 0, $imageSourceNWidth, $imageSourceNHeight, $imageSourceWidth, $imageSourceHeight);
             // save image depends from MIME type
             if ($imageData['mime'] == 'image/jpeg' || $imageData['mime'] == 'image/pjpeg' || $imageData['mime'] == 'image/jpg') {
                 imagejpeg($imageBG, $cache_dir . $thumb . $filename, $quality);
             } elseif ($imageData['mime'] == 'image/gif') {
                 imagegif($imageBG, $cache_dir . $thumb . $filename);
             } else {
                 imagepng($imageBG, $cache_dir . $thumb . $filename);
             }
             return TRUE;
         } else {
             return FALSE;
         }
     }
 }
Пример #3
0
echo $height;
?>
px;">
		
			<?php 
for ($i = 0; $i < count($this->config['image_show_data']); $i++) {
    ?>
				<?php 
    if ($this->config['image_show_data'][$i]->published) {
        ?>
				<?php 
        // cleaning variables
        unset($path_big, $title, $link);
        // creating slide path
        if ($this->config['generate_thumbnails'] == 1) {
            $path_big = $uri->root() . 'modules/mod_image_show_gk4/cache/' . GKIS_GameMagazine_Image::translateName($this->config['image_show_data'][$i]->image, $this->config['module_id']);
        } else {
            $path_big = $this->config['image_show_data'][$i]->image;
        }
        // creating the title
        if ($this->config['image_show_data'][$i]->type == "k2") {
            $title = htmlentities(htmlspecialchars($this->articlesK2[$this->config['image_show_data'][$i]->artK2_id]["title"]), ENT_QUOTES, 'UTF-8', false);
            $link = $this->articlesK2[$this->config['image_show_data'][$i]->artK2_id]["link"];
        } else {
            // creating slide title
            $title = htmlentities(htmlspecialchars($this->config['image_show_data'][$i]->type == "text" ? $this->config['image_show_data'][$i]->name : $this->articles[$this->config['image_show_data'][$i]->art_id]["title"]), ENT_QUOTES, 'UTF-8', false);
            $link = $this->config['image_show_data'][$i]->type == "text" ? $this->config['image_show_data'][$i]->url : $this->articles[$this->config['image_show_data'][$i]->art_id]["link"];
        }
        ?>
				
				<div class="gkIsSlide" style="z-index: <?php