Hey, all -- I've been reading various posts in the forum but haven't found one that helps with this problem.
I want to change ZenPhoto's sizing behavior so that no image is more than 800 pixels wide and no more than 494 pixels high. Right now it seems I have the option to set either the maximum
width or the maximum for
both. There's no separate setting for max height.
(I read the thread at
http://www.zenphoto.org/support/topic.php?id=640&replies=25#post-3739, but it didn't help.)
I want ZenPhoto to shrink the photo so that the height is <= 494 and the width is <= 800. Obviously this is so that both portrait and landscape images fit in the window.
Anything someone can suggest or point me to? Many thanks!
http://www.zenphoto.org/support/topic.php?id=640&replies=25#post-3739
Comments
`<?php <br />
$percent = getFullWidth() / 100; // getting 1 percent from the width
$heightpercent = getFullHeight() / $percent; // getting how many percent the height of the width;
// if the image is a quadrat
if (getFullWidth() === getFullHeight())
{
printCustomSizedImage(getImageTitle(), 800, 800, 494, null, null, null, null, getImageID());
}
// the height should never be more than 61 percent (494 are 61.75 percent from maxwidth 800)
elseif ($heightpercent >= 61)
{
printCustomSizedImage(getImageTitle(),null, null, 494, null, null, null, null, getImageID());
}
else
{
// if the image fits normally, so that it can't get too wide
printCustomSizedImage(getImageTitle(), 800, 800, 494, null, null, null, null, getImageID());
}
?>`
Could be that you need to adjust the values a little.
`
" title="<?php echo getImageTitle();?>">
The following code looks at whether the image is square, portrait or landscape, and based on some variables you configure, sizes the image accordingly.
`
" title="<?php echo getImageTitle();?>">
<?php<br />
$maxwidth = 700;
$maxheight = 470;
$maxar = $maxwidth / $maxheight;
$fullwidth = getFullWidth();
$fullheight = getFullHeight();
$fullar = $fullwidth / $fullheight;
// if image is square
if ($fullwidth == $fullheight) {
printCustomSizedImage(getImageTitle(), null, null, $maxheight, null, null, null, null, getImageID());
}
// if image is landscape
else if ($fullar >= $maxar) {
printCustomSizedImage(getImageTitle(), $maxwidth, $maxwidth, mull);
}
// if image is portrait
else if ($fullar <= $maxar) {<br />
printCustomSizedImage(getImageTitle(), null, null, $maxheight);
}
?>
http://www.zenphoto.org/documentation-official/zenphoto/_template-functions.php.html#functionprintCustomSizedImageMaxHeight
People who visit my gallery get frustrated if they have to scroll down to see the entire PORTRAIT image. Currently the only way to avoid this is to specify a low number (say 595px) which applies both to image height and width. This solves the scrolling problem in the case of PORTRAITS but in turn LANDSCAPES become unnecessarily small. This is also currently an issue in the SLIDESHOW plugin where the sudden appearance of a scroll bar in certain images causes the entire slideshow to shift in an unsightly fashion.
What would be nice:
A way to maximize the use of browser-window real estate i.e the displayed image (regardless of orientation) should use as much of the available browser window as possible without the user needing to scroll. This should be an option both in regular image galleries and slideshows.
`if (getFullWidth() === getFullHeight() OR getFullWidth() > getFullHeight()) { printCustomSizedImage(getImageTitle(), null, 150, null);
} else {
printCustomSizedImage(getImageTitle(), null, null , 150);
}`
You can of course replace the used function with the `printcustomalbumthumbimage` one above. We will add this as default behavior in the future, meaning you will be able to set a width and height for uncropped thumbs/sized images instead of setting only a size sometime in the future.
jayray999:
To your browser window idea,. I think this could be done as a theme option. And you can do that with CSS alone, you just need to set the <img> and it's width/height attributes to a relative percentage for example. Then the image will scale if you change the browser window. You could even use max-width to prevent them getting too big if their resolution does not allow.