[英]Problems rotating tiff image
我已經找到了一個順時針旋轉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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.