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); ?>