PHP 想要用 GD 來畫出圓形、橢圓形等等的圖形,該怎麼畫呢?背景想要是透明的,要怎麼做呢?
PHP 畫出 透明背景 的 圓形 圖片程式
這邊來示範下述:
- 圖片畫出 圓形 和 橢圓形
- 畫兩個不同的圓形
這些圖片的背景,全部都設定為透明。(因為要透明背景,所以範例都使用 png)
下述會用到幾個主要的 Function:
- imagecolorallocate() - Allocate a color for an image (指定圖片一個顏色)
- imagefilledellipse() - Draw a filled ellipse (畫一個填滿的橢圓形)
- imagefilledellipse($im, x位置, y位置, 寬, 高, imagecolorallocate(指定的顏色))
- 寬、高若一致,就會畫出圓形,減少則會變成橢圓形
- imagecolortransparent() - Define a color as transparent (指定某個顏色為透明)
- imagecolortransparent($im, imagecolorallocate(指定的顏色));
- 將某個顏色設定為透明背景 (任何顏色都可以指定為透明背景,不用特定顏色)
圖片畫出 圓形 和 橢圓形 (透明背景)
<?php
header("Content-type:image/png");
$im = imagecreatetruecolor(200, 200); // 建立空的圖片
$white = imagecolorallocate($im, 255, 255, 255);
$black = imagecolorallocate($im, 0, 0, 0);
imagefill($im, 0, 0, $white); // 填滿白色 (背景)
imagefilledellipse($im, 100, 100, 200, 200, $black);
// imagefilledellipse($im, 100, 100, 200, 100, $black); // 改成此行則畫出 橢圓形
imagecolortransparent($im, $white); // 將白色設定為透明背景
imagepng($im);
imagedestroy($im);
?>
畫兩個不同的圓形 (橫排 + 透明背景)
<?php
header("Content-type:image/png");
$im = imagecreatetruecolor(400, 200);
$yellow = imagecolorallocate($im, 255, 255, 0);
$black = imagecolorallocate($im, 0, 0, 0);
$red = imagecolorallocate($im, 255,0,0);
imagefill($im, 0, 0, $yellow);
imagefilledellipse($im, 100, 100, 200, 200, $black);
imagefilledellipse($im, 300, 100, 200, 200, $red);
imagecolortransparent($im, $yellow); // 將黃色設定為透明背景
imagepng($im);
imagedestroy($im);
?>