旋转图像时与jpegtran奇怪的“边界”

时间:2017-10-19 12:50:35

标签: libjpeg-turbo jpegtran

我正在使用 jpegtran 来旋转我的图像,但它似乎做了一些奇怪的事情。 相同的代码/逻辑在我的其他服务器上运行。这是我做过的一个测试案例:

test.jpg是原始图像,然后我运行:

jpegtran -rotate 90 test1.jpg > test2.jpg.tmp
mv test2.jpg.tmp test2.jpg
jpegtran -rotate 90 test2.jpg > test3.jpg.tmp
mv test3.jpg.tmp test3.jpg

test.jpg放在:

test1.jpg

test2.jpg

test2.jpg (first rotation)

test3.jpg:

test3.jpg (2nd rotation)

正如你应该看到的那样,它上面有奇怪的边框(几乎就像图像另一部分的阴影):

enter image description here

导致这种情况的原因是什么,以及如何绕过它?

OLD 服务器显示:

jpegtran -v
libjpeg-turbo version 1.2.1 (build 20131209)
Copyright (C) 1991-2010 Thomas G. Lane, Guido Vollbeding
Copyright (C) 1999-2006 MIYASAKA Masaru
Copyright (C) 2009 Pierre Ossman for Cendio AB
Copyright (C) 2009-2012 D. R. Commander
Copyright (C) 2009-2011 Nokia Corporation and/or its subsidiary(-ies)

Emulating The Independent JPEG Group's libjpeg, version 6b  27-Mar-1998

... NEW 服务器显示:

jpegtran -v
Independent JPEG Group's JPEGTRAN, version 9b  17-Jan-2016
Copyright (C) 2016, Thomas G. Lane, Guido Vollbeding

1 个答案:

答案 0 :(得分:0)

通常情况下,我刚刚将问题写出并发布,我找到了解决方案:)

http://www.imagemagick.org/discourse-server/viewtopic.php?t=21341#p87099

基本上,添加" -trim"命令 - 所以它看起来像:

jpegtran -rotate 90 -trim test1.jpg > test2.jpg.tmp
mv test2.jpg.tmp test2.jpg
jpegtran -rotate 90 -trim test2.jpg > test3.jpg.tmp
mv test3.jpg.tmp test3.jpg

我刚尝试了这个,它按预期工作:)我想在这里张贴以防万一其他人遇到这个!