Как бы я исказил изображение с помощью библиотеки GD?

Я хочу исказить изображение в форме трапеции. Левый и правый края должны быть прямо вверх и вниз; верхний и левый края должны быть угловатыми. Я понятия не имею, что лучший способ сделать это.

Я использую GD Library и PHP. Может кто-то указать мне верное направление?

  • Последовательность Fibonacci PHP
  • глобальные переменные в php не работают как ожидалось
  • Ошибка при написании арабского изображения
  • Как создать форму с несколькими строками одного объекта в Symfony2
  • Зачем использовать функцию sprintf в PHP?
  • PHP Неустранимая ошибка: класс «Slim» не найден
  • Спасибо, Джейсон

  • PHP + GD: imagecopymerge не сохраняет PNG-прозрачные пленки
  • как создать base64encoded строку из ресурса изображения
  • Рендеринг SVG-файла в PNG или JPEG в PHP
  • Найти разрешение JPEG с помощью PHP
  • 2 Solutions collect form web for “Как бы я исказил изображение с помощью библиотеки GD?”

    Попробуй это:

    <? // Set it up $img_name = "grid.jpg"; $src_img = imagecreatefromjpeg($img_name); $magnify = 4; // Magnify the size $w = imagesx($src_img); $h = imagesy($src_img); $dst_img = imagecreatetruecolor($w * $magnify, $h * $magnify); imagecopyresampled($dst_img, $src_img, 0, 0, 0, 0, $w * $magnify, $h * $magnify, $w, $h); $src_img = $dst_img; // Skew it $w *= $magnify; $h *= $magnify; $new_lh = abs($h * 0.66); $new_rh = $h ; $step = abs((($new_rh - $new_lh) / 2) / $w); $from_top = ($new_rh - $new_lh) / 2 ; $dst_img = imagecreatetruecolor($w, $new_rh); $bg_colour = imagecolorallocate($dst_img, 255, 255, 255); imagefill($dst_img, 0, 0, $bg_colour); for ($i = 0 ; $i < $w ; $i ++) { imagecopyresampled($dst_img, $src_img, $i, $from_top - $step * $i, $i, 0, 1, $new_lh + $step * $i * 2, 1, $h); } // Reduce the size to "anti-alias" it $src_img = $dst_img; $dst_img = imagecreatetruecolor($w / $magnify * 0.85, $new_rh / $magnify); imagecopyresampled ($dst_img, $src_img, 0, 0, 0, 0, $w / $magnify * 0.85, $h / $magnify, $w, $h); header("Content-Type: image/jpg"); imagejpeg($dst_img); ?> 

    Я нашел эту нить (переведена голландский -> английский), обсуждая то же самое. Похоже, это может быть то, что тебе нужно. Я думаю, что ясно, что вы не можете перекоситься с GD, не нажимая свою собственную функцию. Если у вас есть ImageMagick, вы можете обнаружить, что это будет легче достичь .

    Удачи.

    PHP is the Best Programming Language in the world.