fixed Gallery Disk Space problem by adding a way to change image density

This commit is contained in:
Doug Bell 2008-07-31 20:31:08 +00:00
parent 4683e4b769
commit b0669c1a36
6 changed files with 100 additions and 18 deletions

View file

@ -109,21 +109,28 @@ C<options> is a hash reference of options and is currently not used.
sub applyConstraints {
my $self = shift;
my $options = shift;
my $gallery = $self->getGallery;
# Update the asset's size and make a thumbnail
my $maxImageSize = $self->getGallery->get("imageViewSize")
my $maxImageSize = $gallery->get("imageViewSize")
|| $self->session->setting->get("maxImageSize");
my $thumbnailSize = $self->getGallery->get("imageThumbnailSize")
|| $self->session->setting->get("thumbnailSize");
my $parameters = $self->get("parameters");
my $storage = $self->getStorageLocation;
my $file = $self->get("filename");
# Make resolutions before fixing image, so that we can get higher quality
# resolutions
$self->makeResolutions;
# adjust density before size, so that the dimensions won't change
$storage->resize( $file, undef, undef, $gallery->get( 'imageDensity' ) );
$storage->adjustMaxImageSize($file, $maxImageSize);
$self->generateThumbnail;
$self->setSize;
$self->makeResolutions;
$self->updateExifDataFromFile;
$self->SUPER::applyConstraints( $options );
}
#-------------------------------------------------------------------
@ -361,7 +368,7 @@ sub makeResolutions {
}
my $newFilename = $res . ".jpg";
$storage->copyFile( $self->get("filename"), $newFilename );
$storage->resize( $newFilename, $res );
$storage->resize( $newFilename, $res, undef, $self->getGallery->get( 'imageDensity' ) );
}
}

View file

@ -65,6 +65,11 @@ sub definition {
DESC => $i18n->get("viewListOrderDirection option desc"),
);
tie my %imageDensityOptions, 'Tie::IxHash', (
72 => $i18n->get( "imageDensity option web" ),
300 => $i18n->get( "imageDensity option print" ),
);
tie my %properties, 'Tie::IxHash', (
groupIdAddComment => {
tab => "security",
@ -102,6 +107,14 @@ sub definition {
label => $i18n->get("imageThumbnailSize label"),
hoverHelp => $i18n->get("imageThumbnailSize description"),
},
imageDensity => {
tab => "properties",
fieldType => "selectBox",
options => \%imageDensityOptions,
defaultValue => 72,
label => $i18n->get( "imageDensity label" ),
hoverHelp => $i18n->get( "imageDensity description" ),
},
maxSpacePerUser => {
tab => "properties",
fieldType => "integer",