如何无损旋转jpeg(90、180、270、360)

kxe2p93d  于 2021-07-09  发布在  Java
关注(0)|答案(1)|浏览(275)

这个问题在这里已经有答案了

java中的无损jpeg旋转(90/180/270度)(4个答案)
6年前关门了。
我想无损地旋转jpeg图像。
我的代码是成功的,但也是失败的:

ByteArrayInputStream inputstream = new ByteArrayInputStream(imgByteArraySource);
BufferedImage oldBufferedImage = ImageIO.read(inputstream);

BufferedImage newBufferedImage = rotate(oldBufferedImage, degrees);
ByteArrayOutputStream baos = new ByteArrayOutputStream();   
ImageIO.write(newBufferedImage, "jpg", baos);
baos.flush();
byte[] imageInByte = baos.toByteArray();

我在这个网站上发现了一个老帖子:java中的无损jpeg旋转(90/180/270度)?
也许有更好的解决办法。我对media util库不是很有信心(它很旧,并且打包在一个.exe文件中)。
有人有主意吗?有没有新的更好的方法?
提前谢谢。
警察

xdnvmnnf

xdnvmnnf1#

只能以90度增量无损旋转。
要以90个增量进行压缩,您需要使用原始文件中使用的相同量化表进行压缩(根据编码器的不同,这仍然可能导致丢失),或者使用一个特殊的程序重新排列jpeg流中的mcu。
任何时候你解压缩一个jpeg使用不同的量化表,你会得到损失。

相关问题