2

30度の角度で歪ませようとしているイメージがあります。

これまでのところ、例からいくつかの任意の制御点に取り組んでいます。

これまでの私のコード:

$im = new imagick($thefile);

      $points = array( 10, 10, 10, 5,

                    10, $im->getImageHeight() - 20,
                    10, $im->getImageHeight() - 5,

                    $im->getImageWidth() - 10, 10,
                    $im->getImageWidth() - 10, 20,

                    $im->getImageWidth() - 10, $im->getImageHeight() - 10,
                    $im->getImageWidth() - 10, $im->getImageHeight() - 30);
      $im->setImageMatte(true);
      $im->setImageVirtualPixelMethod( imagick::VIRTUALPIXELMETHOD_TRANSPARENT );
      $im->distortImage( Imagick::DISTORTION_PERSPECTIVE, $points, TRUE );
      $im->writeImage($thefile);

また、画像を失いたくないので、新しい画像が失われないようにするには、どのサイズにする必要があるかを判断する必要があります。

歪む http://sadtoe.com/temp/distort.jpg

洞察をありがとう

編集: Photoshop でサンプル画像を作成した方法を確認した後、回転が 30 に設定されていることに気付きました。水平方向の傾斜も同様です。したがって、回転と傾斜の方法を見つけることができれば、遠近法の歪みはこれを行う最も簡単な方法ではないかもしれません。

4

0 に答える 0