Я пытаюсь повернуть BufferedImage, и он работает, но повернутое изображение имеет черную рамку вокруг некоторых сторон, и я не знаю, почему ... Я также чувствую, что он становится меньше после поворота.Вращение BufferedImage дает ему черную рамку
import java.awt.image.BufferedImage;
import java.awt.geom.AffineTransform;
import java.awt.image.AffineTransformOp;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
public class example {
static void main(String[] args) throws IOException {
BufferedImage imgResc = ImageIO.read(new File("landscape.jpg"));
AffineTransform tx = new AffineTransform();
tx.rotate(Math.PI/2, imgResc.getWidth()/2, imgResc.getHeight()/2);//(radian,arbit_X,arbit_Y)
AffineTransformOp op = new AffineTransformOp(tx, AffineTransformOp.TYPE_BILINEAR);
BufferedImage rotatedImage = new BufferedImage(imgResc.getHeight(),imgResc.getWidth(),imgResc.getType());
op.filter(imgResc, rotatedImage);
ImageIO.write(rotatedImage, "JPEG", new File("rotated_90_right.jpg"));
}
}
Выше приведен фрагмент кода для поворота изображения, как я нашел его онлайн.
Помощь будет замечательной!
EDIT:
Это, как он должен выглядеть и что я получаю после поворота: (1920 х 1200)
Возможно ли, что ваша ширина или высота нечетные? Если это так, то ваши деления на два будут вводить ошибку округления, уменьшая изображение на пиксель. Это размер границы? – Andrew
Я отредактировал вопрос и добавил img того, что результат. – ViktorG
Он также не вращается в том, что вы опубликовали ... – Andrew