Поворот текста с помощью imagestring()

#php

#php

Вопрос:

В данный момент я работаю над небольшим проектом. Для этого проекта мне нужна фотография с текстом на ней (чтобы ботам было сложнее разобраться в тексте).

Я следую совету этого ответа, но imagettftext использует шрифты true type, что в моем случае невозможно. Поэтому я искал альтернативу и нашел imagestring .

Итак, мой подход к проблеме выглядит следующим образом:

 <?php
    function randExer() {
        //Creating random (simple) math problem
        $arr = array("zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten");
        $item1 = $arr[array_rand($arr)];
        $item2 = $arr[array_rand($arr)];
        $random = $item1 . "   " . $item2;

        //Saving created math problem for later
        file_put_contents("exercise.txt", $random);

        //Creates a black picture with width=200 and height = 50
        $img = imagecreatetruecolor(200, 50);

        //uses RGB-values to create a useable color
        $white = imagecolorallocate($img, 255, 255, 255);

        //Adds white-colored text
        $var = imagestring($img, 5, 18, 18, $random . " = ?", $white);

        //Save image
        imagejpeg($img, "exercise.png", -1);    
    };
?>
  

Это работает, и результат выглядит примерно так:

пример

Проблема

Есть ли способ повернуть текст под определенным углом?

Комментарии:

1. является ли $rotate = imagerotate ($img, 10, 0); imagejpeg ($ rotate); что вы хотите?

Ответ №1:

Вы можете использовать https://www.php.net/manual/en/function.imagerotate.php изменение изображения, например

     ...
    //Adds white-colored text
    $var = imagestring($img, 5, 18, 18, $random . " = ?", $white);
    $rotate = imagerotate($img, 10, 0);
    //Save image
    imagejpeg($rotate, "exercise.png", -1);   
    ...
  

настройте второй параметр на угол