I have a problem with quality when I try only to RESIZE an image to a specific width and height using imgsclr 4.2(http://www.thebuzzmedia.com/imgscalr-3-2-released/comment-page-1/#comment-650387).
I have an image which 240X320 and I have to resize it to 50X75 and 120X180 . I tried both separately using the following code(I am using imgscalr 4.2).
image=resize(image,Method.ULTRA_QUALITY, 50,75, OP_ANTIALIAS, OP_BRIGHTER);
saveImage(image, ImageFormatTypes.JPEG, DESTINATION + RESIZED_IMAGE + “.”+ImageFormatTypes.JPEG);
I have two problems. #1 is very low quality compared to other internal tools I used to resize the image manually. #2. The width increases on the output from 50 to 56 and from 120 to 135 which is weird.
Do you have any idea why these are happening? I appreciate your help.

I don't think the core issue is with imgsclr, but with the choice of
jpg. Remember, jpg uses a loss-based algorithm, dumping parts of the image to reduce it's size.For comparison, the two images below were produced using the same methods, but the left was output using
jpgand the right usingpng(using theImageIOAPI)So the top image is the same master image.
The second row is imgsclr using
ULTRA_QUALITY,AUTOMATIC,BALANCEDandQUALITYmethods. The last image on the second row is usingSPEEDThe last row is a serious of "other" scaling methods. The first two use a divide and conquer approach, dividing the image by 2 until it reaches it's desired size, demonstrated here. The first is a "to fill" and the other is "to fit" (one will overfill the available space, one will fit within). The third image is using
Image#getScaledInstanceand I seem to have introduced a alpha channel somewhere, hence the reason the jpg version is red, but I was comparing quality ;)The reason for the size increase may come down to imgsclr attempting to maintain the aspect ratio of the image
And finally...
This compares
BufferedImageOp, usingOP_BRIGHTER,OP_ANTIALIASandOP_BRIGHTER,OP_ANTIALIAS, none from right to left...These are output as PNGs