有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java倾斜缓冲区有关xaxis的图像

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

问题:我想将BufferedImage向后倾斜(关于x轴)25度

也就是说,我想将其转换为:

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

像这样的事情

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

我在看{a1},听上去JAI的{}可能会起作用

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


共 (2) 个答案

  1. # 1 楼答案

    我认为您需要Java3d,或者自己计算。基本上,可以使用纹理对平面进行三维旋转

  2. # 2 楼答案

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

    尤其是“透视过滤器”

    编辑:

    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"));
    }  
    

    此代码将从以下内容转换图像:
    original image

    对此:
    modified image