我有一张图片,想使用 imgscalr [1] 缩小它。
源图像的大小是 1836 x 3264(所以它是纵向模式),目标分辨率是 1336 x 768。
失败是图像在缩放后处于横向模式而不是纵向模式。缩放本身就像一个魅力。
我的代码:
BufferedImage src = ImageIO.read(new File("sourceimage.jpg"));
BufferedImage scaled = Scalr.resize(src, Scalr.Method.SPEED, Scalr.Mode.FIT_TO_HEIGHT, 1336, 768, Scalr.OP_ANTIALIAS);
ImageIO.write(scaled, "jpg", f);
文件的元数据看起来正确(方向 = 1)。
我的解释是在缩小肖像图片时,在缩放过程之后它仍然是肖像图片。
我还尝试了一些其他库/类,例如:https ://frickelblog.wordpress.com/2009/06/08/fast-image-scaling-in-java/但效果是一样的。
你能帮我么?这个让我发疯!我很确定只有一个细节需要改变。
[1] http://www.thebuzzmedia.com/software/imgscalr-java-image-scaling-library/#maven
编辑:
这是原始图像: http: //i.stack.imgur.com/NEc8j.jpg
缩放版本:http: //i.stack.imgur.com/SYx6p.jpg