我正在将tiff图像文件从一个目录复制到另一个目录,并且需要顺时针旋转它们90度以更正其页面方向。图像是技术图纸,质量已经很差,所以我需要尽可能使用无损技术。每日批次可能会有数以千计的图纸需要处理,因此记忆和时间效率也是两个因素。
我做的图像处理很少,所以我对这个可用的库不太熟悉。在做了一些阅读之后,我正在考虑使用JAI的“转置”:
使用此技术的任何人都可以在功能或效率方面推荐或反对吗?
有关其他方法的任何建议吗?
答案 0 :(得分:1)
你可以考虑使用这样的东西:
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);
答案 1 :(得分:1)
好吧,如果你只想将它们旋转90度,你只需要读取图像的列并将它们写成行。完全没有损失。
伪代码:
for x in oldimage.width
for y in oldimage.height
newimage[y][x] = oldimage[x][y]