如何在PHP中并排绘制翻转图像和原始图像?

时间:2018-05-26 02:06:35

标签: php gd php-gd

以下是我目前使用的代码。

$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()正在翻转矩形和虚线,但它们是对称的,所以没什么大不了的。

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

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

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

enter image description here

2 个答案:

答案 0 :(得分:0)

如果你想要你可以使用javascript,如果你知道它来获得它的风格然后添加一个新的,但这可能是复杂的。我可以引导你完成它,虽然这需要相当多的时间。如果你有一个github我可以帮忙

答案 1 :(得分:0)

如果您想在翻页前保留原始图片,请使用imagecopy()复制图片,然后使用新的复制图片调用imageflip()

$flipImage = imagecreatetruecolor(400, 300);
imagecopy($flipImage, $image, 0, 0, 0, 0, 400, 300);
imageflip($flipImage, IMG_FLIP_HORIZONTAL);