以下是我目前使用的代码。
$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()
正在翻转矩形和虚线,但它们是对称的,所以没什么大不了的。
将填充颜色设置为透明不起作用。任何帮助将不胜感激。
我的目标是拍摄原始图像,沿水平线翻转,然后沿垂直线翻转生成的图像。
一旦我知道如何在不丢失原始图像的情况下沿水平线翻转,我可以尝试自己完成其余的工作。
答案 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);