fmsystem-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Fmsystem-commits] [7437] property: keep original ratio on thumbs


From: Sigurd Nes
Subject: [Fmsystem-commits] [7437] property: keep original ratio on thumbs
Date: Tue, 28 Jun 2011 09:03:49 +0000

Revision: 7437
          http://svn.sv.gnu.org/viewvc/?view=rev&root=fmsystem&revision=7437
Author:   sigurdne
Date:     2011-06-28 09:03:49 +0000 (Tue, 28 Jun 2011)
Log Message:
-----------
property: keep original ratio on thumbs

Modified Paths:
--------------
    trunk/property/inc/class.uigallery.inc.php

Modified: trunk/property/inc/class.uigallery.inc.php
===================================================================
--- trunk/property/inc/class.uigallery.inc.php  2011-06-28 09:03:04 UTC (rev 
7436)
+++ trunk/property/inc/class.uigallery.inc.php  2011-06-28 09:03:49 UTC (rev 
7437)
@@ -126,10 +126,16 @@
                                return false;
                        }
 
-                       if($thumb && is_file($thumbfile))
+                       $re_create= false;
+                       if($this->is_image($source) && $thumb && $re_create)
                        {
+                               
$this->create_thumb($source,$thumbfile,$thumb_size = 100);
                                readfile($thumbfile);
                        }
+                       else if($thumb && is_file($thumbfile))
+                       {
+                               readfile($thumbfile);
+                       }
                        else if($this->is_image($source) && $thumb)
                        {
                                
$this->create_thumb($source,$thumbfile,$thumb_size = 100);
@@ -141,12 +147,14 @@
                        }
                }
 
-               function create_thumb($source,$dest,$thumb_size = 100)
+               function create_thumb($source,$dest,$target_height = 100)
                {
                        $size = getimagesize($source);
                        $width = $size[0];
                        $height = $size[1];
 
+                       $target_width = round($width*($target_height/$height));
+
                        if ($width > $height)
                        {
                                $x = ceil(($width - $height) / 2 );
@@ -158,26 +166,26 @@
                                $height = $width;
                        }
 
-                       $new_im = ImageCreatetruecolor($thumb_size,$thumb_size);
+                       $new_im = 
ImageCreatetruecolor($target_width,$target_height);
 
                        @$imgInfo = getimagesize($source);
 
                        if ($imgInfo[2] == IMAGETYPE_JPEG)
                        {
                                $im = imagecreatefromjpeg($source);
-                               
imagecopyresampled($new_im,$im,0,0,$x,$y,$thumb_size,$thumb_size,$width,$height);
+                               
imagecopyresampled($new_im,$im,0,0,$x,$y,$target_width,$target_height,$width,$height);
                                imagejpeg($new_im,$dest,75); // Thumbnail 
quality (Value from 1 to 100)
                        }
                        else if ($imgInfo[2] == IMAGETYPE_GIF)
                        {
                                $im = imagecreatefromgif($source);
-                               
imagecopyresampled($new_im,$im,0,0,$x,$y,$thumb_size,$thumb_size,$width,$height);
+                               
imagecopyresampled($new_im,$im,0,0,$x,$y,$target_width,$target_height,$width,$height);
                                imagegif($new_im,$dest);
                        }
                        else if ($imgInfo[2] == IMAGETYPE_PNG)
                        {
                                $im = imagecreatefrompng($source);
-                               
imagecopyresampled($new_im,$im,0,0,$x,$y,$thumb_size,$thumb_size,$width,$height);
+                               
imagecopyresampled($new_im,$im,0,0,$x,$y,$target_width,$target_height,$width,$height);
                                imagepng($new_im,$dest);
                        }
                }




reply via email to

[Prev in Thread] Current Thread [Next in Thread]