Как я могу нарисовать перевернутое изображение и исходное изображение рядом с PHP?

Вот код, который я использую в настоящее время.

$image = imagecreatetruecolor(400, 300);
imagesavealpha($image, true);
imagesetthickness($image, 2);

$red = imagecolorallocate($image, 255, 0, 0);
$green = imagecolorallocate($image, 0, 255, 0);
$blue = imagecolorallocate($image, 0, 0, 255);
$transparent = imagecolorallocatealpha($image, 255, 255, 255, 0);

imagefill($image, 0, 0, $transparent);

imagerectangle($image, 2, 2, 398, 298, $red);
imagedashedline($image, 0, 150, 400, 150, $blue);
imagedashedline($image, 200, 0, 200, 300, $blue);
imagepolygon($image, array( 10, 180, 10, 250, 110, 250), 3, $red);

// imageflip($image, IMG_FLIP_VERTICAL);

ob_start();
imagepng($image);
printf('<img src="data:image/png;base64,%s"/>', base64_encode(ob_get_clean()));

imagedestroy($image);

Прикрепленное изображение является результатом выполнения приведенного выше кода.

Я хочу перевернуть треугольник в правом нижнем углу и нарисовать его вместе с исходным изображением. Я пытался использовать imageflip(), но он рисует поверх исходного изображения.

Я знаю, что imageflip() переворачивает прямоугольник, а также пунктирные линии, но они симметричны, так что это не имеет большого значения.

Установка цвета заливки на прозрачный не сработала. Любая помощь будет оценена по достоинству.

Моя цель - взять исходное изображение, перевернуть его по горизонтальной линии, а затем перевернуть полученное изображение по вертикальной линии.

Как только я узнаю, как отражать горизонтальную линию, не теряя исходного изображения, я могу попытаться сделать все остальное самостоятельно.

введите здесь описание изображения


person iKnowNothing    schedule 26.05.2018    source источник


Ответы (2)


если вы хотите, вы можете использовать javascript, если вы знаете его, чтобы получить его стиль, затем добавьте новый, но это может быть сложно. Я могу провести вас через это, хотя это займет довольно много времени. Я могу помочь, если у вас есть гитхаб

person Nick    schedule 26.05.2018
comment
На самом деле у меня возник конфликт между использованием JavaScript canvas API или PHP GD. Как вы думаете, такие вещи были бы проще в JavaScript? - person iKnowNothing; 26.05.2018
comment
вам определенно понадобится php внутри вашего кода, но javascript — неплохой способ. и да, на мой взгляд, определенно было бы проще использовать document.getElementById, чем что-либо еще. - person Nick; 26.05.2018

Если вы хотите сохранить исходное изображение перед переворачиванием, используйте imagecopy() для дублирования изображения, а затем вызовите imageflip(), используя новое дубликат изображения.

$flipImage = imagecreatetruecolor(400, 300);
imagecopy($flipImage, $image, 0, 0, 0, 0, 400, 300);
imageflip($flipImage, IMG_FLIP_HORIZONTAL);
person Zamrony P. Juhara    schedule 26.05.2018