gpt4 book ai didi

java - 旋转 tiff 图像时出现问题

转载 作者:行者123 更新时间:2023-11-29 06:06:57 25 4
gpt4 key购买 nike

我找到了一个顺时针旋转 tiff 图像 的代码,但它花费了很多时间,甚至在 jscrollpanel 中滚动图像也非常慢。

1.那么有什么简单的方法可以旋转tiff图像或者

2.下面的代码需要任何调整才能快速旋转。

            ReadableByteChannel rBytChnl = Channels.newChannel(url);
ByteBuffer buffer = ByteBuffer.allocate(4096 * 1024);
rBytChnl.read(buffer);
byte[] data = buffer.array();
SeekableStream stream = new ByteArraySeekableStream(data);
ParameterBlock pb = new ParameterBlock();
pb.add(stream);
RenderedOp op = JAI.create("tiff", pb);
TransposeType type = TransposeDescriptor.ROTATE_90;
ParameterBlock pb1 = new ParameterBlock();
pb1.addSource(op);
pb1.add(type);
pb1.add(new InterpolationBilinear());
image = JAI.create("transpose", pb1, null);

最佳答案

我已经调整了仿射变换以满足我的需要并且它工作正常。这仅适用于顺时针旋转 90 度,其他需要相应更改代码。

       PlanarImage pi = PlanarImage.wrapRenderedImage(image);
BufferedImage bi = pi.getAsBufferedImage();
AffineTransform at = new AffineTransform();
at.translate(-(image.getWidth() - image.getHeight()) / 2, (image.getWidth() - image.getHeight()) / 2);
at.rotate(Math.toRadians(90),bi.getWidth()/2,bi.getHeight() / 2);
AffineTransformOp opRotated = new AffineTransformOp(at,
AffineTransformOp.TYPE_BILINEAR);
image = opRotated.filter(bi, null);

关于java - 旋转 tiff 图像时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8237784/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com