diff options
author | Andreas Gohr <andi@splitbrain.org> | 2005-07-31 13:50:30 +0200 |
---|---|---|
committer | Andreas Gohr <andi@splitbrain.org> | 2005-07-31 13:50:30 +0200 |
commit | 23a34783631a54703aa67aa0de81c404c59ef4ef (patch) | |
tree | 42bea8efb0c012a2e89e1678ccdd8663b70497f0 /inc/JpegMeta.php | |
parent | 4b15e09d7fd735b5df41e47b6e324e0bc44fa872 (diff) | |
download | rpg-23a34783631a54703aa67aa0de81c404c59ef4ef.tar.gz rpg-23a34783631a54703aa67aa0de81c404c59ef4ef.tar.bz2 |
optimized Image metadata handling
darcs-hash:20050731115030-7ad00-2a1a423985864f0daae57545c2f3945abfc10257.gz
Diffstat (limited to 'inc/JpegMeta.php')
-rw-r--r-- | inc/JpegMeta.php | 39 |
1 files changed, 37 insertions, 2 deletions
diff --git a/inc/JpegMeta.php b/inc/JpegMeta.php index 656e98625..b9f0908d4 100644 --- a/inc/JpegMeta.php +++ b/inc/JpegMeta.php @@ -328,6 +328,36 @@ class JpegMeta } /** + * Calculates the multiplier needed to resize the image to the given + * dimensions + * + * @author Andreas Gohr <andi@splitbrain.org> + */ + function getResizeRatio($maxwidth,$maxheight=0){ + if(!$maxheight) $maxheight = $maxwidth; + + $w = $this->getField('File.Width'); + $h = $this->getField('File.Height'); + + $ratio = 1; + if($w >= $h){ + if($w >= $maxwidth){ + $ratio = $maxwidth/$w; + }elseif($h > $maxheight){ + $ratio = $maxheight/$h; + } + }else{ + if($h >= $maxheight){ + $ratio = $maxheight/$h; + }elseif($w > $maxwidth){ + $ratio = $maxwidth/$w; + } + } + return $ratio; + } + + + /** * Set an IPTC field * * @author Sebastian Delmont <sdelmont@zonageek.com> @@ -1090,12 +1120,18 @@ class JpegMeta return true; } - /*************************************************************/ + /** + * Gets basic info from the file - should work with non-JPEGs + * + * @author Sebastian Delmont <sdelmont@zonageek.com> + * @author Andreas Gohr <andi@splitbrain.org> + */ function _parseFileInfo() { if (file_exists($this->_fileName)) { $this->_info['file'] = array(); $this->_info['file']['Name'] = basename($this->_fileName); + $this->_info['file']['Path'] = realpath($this->_fileName); $this->_info['file']['Size'] = filesize($this->_fileName); if ($this->_info['file']['Size'] < 1024) { $this->_info['file']['NiceSize'] = $this->_info['file']['Size'] . 'B'; @@ -1111,7 +1147,6 @@ class JpegMeta } $this->_info['file']['UnixTime'] = filemtime($this->_fileName); - // Andreas Gohr <andi@splitbrain.org> // get image size directly from file $size = getimagesize($this->_fileName); $this->_info['file']['Width'] = $size[0]; |