我的项目:我正在从int[]创建一个地图/地形,输出是一个BufferedImage
问题:我想把BufferedImage向后(大约x轴)倾斜25度。
也就是说,我想转换这个:

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

变成这样
   ____
  /    \
 /      \
/        \
----------

我看到的是this answer,听上去jai的PerspectiveTransform可能起到了作用。
问题:如何将PerspectiveTransform应用于BufferedImage?这是将图像向后倾斜的正确方法吗?

最佳答案

看看Jhlabs过滤器:
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"));
}

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

关于java - 绕x轴倾斜BufferedImage,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11476434/

10-12 06:26