[pLog-svn] r3982 - in plog/branches/lifetype-1.1.1/class/gallery:
dao resizers
oscar at devel.lifetype.net
oscar at devel.lifetype.net
Sun Sep 17 22:16:02 GMT 2006
Author: oscar
Date: 2006-09-17 22:16:01 +0000 (Sun, 17 Sep 2006)
New Revision: 3982
Modified:
plog/branches/lifetype-1.1.1/class/gallery/dao/galleryresources.class.php
plog/branches/lifetype-1.1.1/class/gallery/resizers/galleryabstractresizer.class.php
plog/branches/lifetype-1.1.1/class/gallery/resizers/galleryresizer.class.php
Log:
This should fix mantis issue 1040 (http://bugs.lifetype.net/view.php?id=1040) -- Resizing of uploaded images works also on smaller images, where images smaller than the final size (if a final size for images was set) would be resized up to this final size
Modified: plog/branches/lifetype-1.1.1/class/gallery/dao/galleryresources.class.php
===================================================================
--- plog/branches/lifetype-1.1.1/class/gallery/dao/galleryresources.class.php 2006-09-17 21:18:24 UTC (rev 3981)
+++ plog/branches/lifetype-1.1.1/class/gallery/dao/galleryresources.class.php 2006-09-17 22:16:01 UTC (rev 3982)
@@ -439,7 +439,7 @@
if( $resourceType == GALLERY_RESOURCE_IMAGE )
$flags = $flags|GALLERY_RESOURCE_PREVIEW_AVAILABLE;
- $info = $this->_filterMetadata( $metadata, $resourceType );
+ $info = $this->_filterMetadata( $metadata, $resourceType );
// add the record to the database
$fileName = $upload->getFileName();
@@ -467,15 +467,31 @@
// and finally, we can generate the thumbnail only if the file is an image, of course :)
if( $resourceType == GALLERY_RESOURCE_IMAGE ) {
- include_once( PLOG_CLASS_PATH."class/gallery/resizers/gallerythumbnailgenerator.class.php" );
- GalleryThumbnailGenerator::generateResourceThumbnail( $resFile, $resourceId, $ownerId );
- GalleryThumbnailGenerator::generateResourceMediumSizeThumbnail( $resFile, $resourceId, $ownerId );
- // call this method only if the settings are right
+ include_once( PLOG_CLASS_PATH."class/gallery/resizers/gallerythumbnailgenerator.class.php" );
+
include_once( PLOG_CLASS_PATH."class/config/config.class.php" );
- $config =& Config::getConfig();
- $previewHeight = $config->getValue( "final_size_thumbnail_height", 0 );
- $previewWidth = $config->getValue( "final_size_thumbnail_width", 0 );
- if( $previewHeight != 0 && $previewWidth != 0 ) {
+ $config =& Config::getConfig();
+
+ $imgWidth = $info["video"]["resolution_x"];
+ $imgHeight = $info["video"]["resolution_y"];
+
+ $previewHeight = $config->getValue( "thumbnail_height", GALLERY_DEFAULT_THUMBNAIL_HEIGHT );
+ $previewWidth = $config->getValue( "thumbnail_width", GALLERY_DEFAULT_THUMBNAIL_WIDTH );
+ if( $imgHeight > $previewHeight || $imgWidth > $previewWidth ) {
+ GalleryThumbnailGenerator::generateResourceThumbnail( $resFile, $resourceId, $ownerId );
+ }
+
+ $medPreviewHeight = $config->getValue( "medium_size_thumbnail_height", GALLERY_DEFAULT_MEDIUM_SIZE_THUMBNAIL_HEIGHT );
+ $medPreviewWidth = $config->getValue( "medium_size_thumbnail_width", GALLERY_DEFAULT_MEDIUM_SIZE_THUMBNAIL_WIDTH );
+ if( $imgHeight > $medPreviewHeight || $imgWidth > $medPreviewWidth ) {
+ GalleryThumbnailGenerator::generateResourceMediumSizeThumbnail( $resFile, $resourceId, $ownerId );
+ }
+
+ // call this method only if the settings are right and the image is bigger than the final size(s)
+ $finalPreviewHeight = $config->getValue( "final_size_thumbnail_height", 0 );
+ $finalPreviewWidth = $config->getValue( "final_size_thumbnail_width", 0 );
+ if(($previewHeight != 0 && $previewWidth != 0) &&
+ ($imgHeight > $finalPreviewHeight || $imgWidth > $finalPreviewWidth )) {
GalleryThumbnailGenerator::generateResourceFinalSizeThumbnail( $resFile, $resourceId, $ownerId );
// we have to recalculate the metadata because the image could be different... This is a bit cumbersome
// and repeats code. We know, thanks.
Modified: plog/branches/lifetype-1.1.1/class/gallery/resizers/galleryabstractresizer.class.php
===================================================================
--- plog/branches/lifetype-1.1.1/class/gallery/resizers/galleryabstractresizer.class.php 2006-09-17 21:18:24 UTC (rev 3981)
+++ plog/branches/lifetype-1.1.1/class/gallery/resizers/galleryabstractresizer.class.php 2006-09-17 22:16:01 UTC (rev 3982)
@@ -9,24 +9,35 @@
* the skeleton of the functions that should be implemented by the generators
* themselves.
*/
- class GalleryAbstractResizer
+ class GalleryAbstractResizer
{
var $_image;
var $_outputMethod;
+ var $_keepAspectRatio;
/**
* Constructor.
*
*/
function GalleryAbstractResizer( $image, $outputMethod )
- {
-
-
+ {
$this->_image = $image;
$this->_outputMethod = $outputMethod;
+ $this->_keepAspectRatio = true;
}
+ /**
+ * Informs the resizer to keep the aspect ratio of the image when resizing, although
+ * this value may be ignored by the resizer and it depends on the implementation.
+ *
+ * @param keepAspectRatio Whether to keep the aspect ratio
+ */
+ function setKeepAspectRatio( $keepAspectRatio )
+ {
+ $this->_keepAspectRatio = $keepAspectRatio;
+ }
+
/**
* Generates the thumbnail
* Uses the values set in the constructor regarding the width, height and output format
Modified: plog/branches/lifetype-1.1.1/class/gallery/resizers/galleryresizer.class.php
===================================================================
--- plog/branches/lifetype-1.1.1/class/gallery/resizers/galleryresizer.class.php 2006-09-17 21:18:24 UTC (rev 3981)
+++ plog/branches/lifetype-1.1.1/class/gallery/resizers/galleryresizer.class.php 2006-09-17 22:16:01 UTC (rev 3982)
@@ -106,7 +106,7 @@
$config =& Config::getConfig();
return $config->getValue( "thumbnail_format" );
}
-
+
/**
* Generates a thumbnail.
*
@@ -140,6 +140,7 @@
$outFile = $fileNoExt.".".$this->_defaultOutputFormat;
}
+ $generatorClassObject->setKeepAspectRatio( $keepAspectRatio );
$imgThumb = $generatorClassObject->generate( $outFile, $width, $height );
return $imgThumb;
More information about the pLog-svn
mailing list