【问题标题】:Tilt BufferedImage about the x-axis围绕 x 轴倾斜 BufferedImage
【发布时间】:2012-07-13 18:43:17
【问题描述】:

我的项目:我正在从 int[] 创建地图/地形,输出是 BufferedImage

问题:我想将BufferedImage 向后(围绕 x 轴)倾斜 25 度。

也就是说,我要转换这个:

 _____
|     |
|     |
|     |
 -----

变成这样的

   ____
  /    \
 /      \
/        \
----------

我正在查看 this answer,听起来 JAI 的 PerspectiveTransform 可能会成功。

问题:如何将PerspectiveTransform 应用于BufferedImage?这是向后倾斜图像的正确方法吗?

【问题讨论】:

    标签: java image-processing bufferedimage jai


    【解决方案1】:

    查看 JHLabs 过滤器:
    http://www.jhlabs.com/ip/filters/index.html

    尤其是“PerspectiveFilter”。

    编辑:

    public void perspective() throws Exception{
        BufferedImage srcImage = ImageIO.read(new File("flower.jpg"));
        BufferedImage destImage = null;
    
        int w = srcImage.getWidth();
        int h = srcImage.getHeight();
    
        PerspectiveFilter perspectiveFilter = new PerspectiveFilter();
        perspectiveFilter.setCorners(w/4, 0, w-w/4, 0, w, h, 0, h);     
        destImage = perspectiveFilter.filter(srcImage, destImage);
    
        ImageIO.write(destImage,"jpg",new File("modified_flower.jpg"));
    }  
    

    此代码将从以下位置转换图像:

    到这里:

    【讨论】:

    • 这看起来可能有潜力,会试一试。暂时会接受这个答案,谢谢。
    【解决方案2】:

    我认为您需要 Java3d,或者自己计算。基本上,你有一个带有纹理的平面的 3d 旋转。

    【讨论】:

      猜你喜欢
      • 2017-10-14
      • 2016-09-04
      • 1970-01-01
      • 2018-10-29
      • 1970-01-01
      • 1970-01-01
      • 2022-01-24
      • 1970-01-01
      • 2016-09-22
      相关资源
      最近更新 更多