【问题标题】:Java image transformationJava图像转换
【发布时间】:2011-03-13 06:04:15
【问题描述】:

我需要为我的图像创建 3d 深度效果。数字 1 是我所拥有的,数字 2 是我想要转换数字 1 的形状。那么在 Java 标准图形库或其他一些开源库中有什么方法吗?

【问题讨论】:

  • 也许this 有帮助。它不使用外部库,只使用 JavaFX。

标签: java image transform


【解决方案1】:

如果您想在 3D 中进行大量快速绘图,那么我建议您研究 3D 渲染解决方案,例如 OpenGL / JOGL。

如果它只是一个快速的一次性转换,那么你可以很容易地模拟这个

  • 循环遍历 2 中的所有行。
  • 在 1 中缩放相应的线,然后将其绘制在 2 中的线上,将其拉伸到正确的比例(您需要一些基本的数学来解决这个问题)

【讨论】:

    【解决方案2】:

    这不能使用AffineTransform 类来完成。请参阅关于仿射变换的维基百科文章:

    一般来说,仿射变换由线性变换(旋转、缩放或剪切)和平移(或“移位”)组成。

    您需要的是某种形式的透视变换。来自http://java.sun.com/products/java-media/jai/forDevelopers/jai-apidocs/javax/media/jai/PerspectiveTransform.html

    透视变换能够将任意四边形映射到另一个任意四边形,同时保持直线的直线度。 与仿射变换不同,源中线的平行度不一定保留在输出中。

    来自http://answers.google.com/answers/threadview/id/515829.html

    Java Advanced Imaging API 允许您轻松执行透视变换。

    在 Java2D 和 Java3D 中,这些例程都经过优化,它们没有 以通常的 java 解释方式运行 - 所以它们非常快 好吧。

    JAI 可从以下位置下载

    http://java.sun.com/products/java-media/jai/downloads/download-1_1_2.html

    您可以在以下位置找到有关如何运行透视变换的信息:

    http://java.sun.com/products/java-media/jai/forDevelopers/jai1_0_1guide-unc/

    【讨论】:

    • 感谢帮助,但我没有找到任何如何使用 JAI 透视转换的示例,而且它的 JavaDocs 信息量很少......
    • 有人帮我解决了这个问题的数学部分stackoverflow.com/questions/4217370/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-03
    • 2019-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多