3

私のプロジェクト:からマップ/地形を作成していint[]て、出力はBufferedImageです。

問題BufferedImage:後方(x軸を中心に)に25度傾けたい。

つまり、これを変換したいのです。

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

このようなものに

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

私はこの答えPerspectiveTransformを見ていました、そしてそれはJAIからの人がトリックをするかもしれないように聞こえます。

質問:どのPerspectiveTransformように適用できBufferedImageますか?これは画像を後ろに傾ける正しい方法ですか?

4

2 に答える 2

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

このコードは、これから画像を変換します。
元の画像

これに:
変更された画像

于 2013-03-06T01:09:20.903 に答える
0

Java3dが必要か、独自の計算を行う必要があると思います。基本的に、テクスチャを使用して平面を3D回転します。

于 2012-12-22T21:16:59.773 に答える