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
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
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
Thank you both for your answers!