Попробуйте выполнить ротацию самостоятельно, поскольку BufferedImage
в любом случае будет содержать несжатые данные.
Таким образом, распакуйте файл JPEG в BufferedImage
, что должно позволить вращение без потерь (из-за несжатых данных).
Пример:
File unrotatedImageFile = ...;
BufferedImage srcImage = ImageIO.read( unrotatedImageFile );
AffineTransformOp t = new AffineTransformOp(
AffineTransform.getRotateInstance( Math.toRadians( 90.0 ) ),
AffineTransformOp.TYPE_NEAREST_NEIGHBOR );
BufferedImage rotatedImage = t.filter( srcImage, null );