如何将 PerspectiveTransform 应用于图形对象或图像?

发布于 2024-11-30 14:25:41 字数 103 浏览 1 评论 0原文

我正在尝试使用 Java Advanced Imaging API 将正方形图像绘制为梯形;然而,在创建 PerspectiveTransform 之后,我不确定如何将其应用到图形对象或图像。

I'm trying to draw a square image into a trapezoid using the Java Advanced Imaging API; However after creating a PerspectiveTransform I am unsure how I would go about applying it to a graphics object or image.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

浅忆 2024-12-07 14:25:41

当您应用 JAI 操作时,获取 RenderedOp,无论结果是哪个操作(PerspectiveTransform、Scale...)。如果您对同一图像应用多个操作,则这表示链中的操作,因此下一个操作将应用于 RenderedOp 等。最后,您需要绘制它,因此:

1) 将其转换为 RenderedImage 以便将所有计算应用于最终图像。使用如下内容:

new BufferedImage(renderedOp.getColorModel(), renderedOp.copyData(), false, null);

2) 使用以下内容将图像绘制到 Graphics 上:

Graphics2D graphics2D = (Graphics2D)graphics; // Convert the graphics received to Graphics2D to get more operations.
graphics2D.drawRenderedImage(renderedImage, new AffineTransform());

When you apply a JAI operation, get RenderedOp, whichever operation (PerspectiveTransform, Scale...) as result. This represents the operation in a chain if you apply several operations to the same image, so the next operation is applied over the RenderedOp and so on. Finally, you need to draw it, so:

1) Convert it to RenderedImage in order to apply all calculations to the final image. Use something like:

new BufferedImage(renderedOp.getColorModel(), renderedOp.copyData(), false, null);

2) Draw the image onto a Graphics using something like:

Graphics2D graphics2D = (Graphics2D)graphics; // Convert the graphics received to Graphics2D to get more operations.
graphics2D.drawRenderedImage(renderedImage, new AffineTransform());
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文