首页 > 解决方案 > 如何在 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()是翻转矩形和虚线,但它们是对称的,所以没什么大不了的。

将填充颜色设置为透明不起作用。任何帮助,将不胜感激。

我的目标是获取原始图像,沿水平线翻转它,然后沿垂直线翻转生成的图像。

一旦我知道如何在不丢失原始图像的情况下沿水平线翻转,我就可以尝试自己完成其余的工作。

在此处输入图像描述

标签: phpgdphp-gd

解决方案


如果你愿意,你可以使用 javascript 如果你知道它来获取它的样式,然后添加一个新的,但这可能很复杂。我可以引导你完成它,尽管这需要相当长的时间。如果你有 github 我可以帮忙


推荐阅读