Hi,
I am using gallery magick library to resize the original image.
It is working fine except some images in which I would only like to set the width to 900px and calculate the height proportionally.
If I call the method ScalrProcessorUtils.resizeImage(ContentFileObjectUtils.toFile(sourceFile), ContentFileObjectUtils.toFile(targetFile), dimension);
By passing as dimension 900x0 , I get the final image resized to 1x1
This is probably because in Scalr.java there is
targetHeight = Math.round((float) targetWidth * ratio);
which sets also the targetHeight to 0
Is there a more proper way to set the dimension instead of 900x0 or is there something to be fixed?
Thank you,
Flavio
2 Likes
More investigations lead me to think that this issue occours only when we have vertical images (height > width) and we want a proportional resize by passing only the width and the height to zero.
I think that I found out the issue: in ScalrProcessorUtils class of GalleryMagick library there is a static method which calls Scalr class of imgscalr library with the hardcoded Mode.AUTOMATIC mode, while it should be configurable.
In our case, it has to be Mode.FIT_TO_WIDTH
BufferedImage resizedImage = Scalr.resize(sourceImage, Method.QUALITY, Mode.AUTOMATIC, dimension.getWidth(), dimension.getHeight(), new BufferedImageOp[0]);
Can it be fixed?
Thanks
Hi Flavio,
Sounds like a good improvement to change the mode somehow.
It’s a community-driven forge project. So, PRs are welcome! 
Woonsan
1 Like
Nice digging 
You’re referring to the plugin at https://github.com/bloomreach-forge/gallery-magick, correct?
Class org.onehippo.forge.gallerymagick.core.command.ScalrProcessorUtils calling org.imgscalr.Scalr.resize?
There’s already some logic if (dimension.getHeight() == 0) { mode = Scalr.Mode.FIT_TO_WIDTH; }
in versions 3.0.1 and 2.0.2, see https://issues.onehippo.com/browse/HIPFORGE-273
Hope this helps
Jeroen
1 Like
Thank you both for your answers!