今天我們要介紹的是PHP中的一個常用函數:imagecopy()。
imagecopy()函數可以將一張圖片的某一部分復制到另一張圖片上。但是,在實際開發中,我們可能會遇到需要將圖片剪切成圓形的需求。
于是,我們就可以使用imagecopy()函數來完成這個任務。
function circleImg($imgPath) {
// 打開圖片
$srcImg = imagecreatefromstring(file_get_contents($imgPath));
// 取得圖片寬度和高度
$srcWidth = imagesx($srcImg);
$srcHeight = imagesy($srcImg);
// 創建一個白色圓形圖片
$dstImg = imagecreatetruecolor($srcWidth, $srcHeight);
$white = imagecolorallocate($dstImg, 255, 255, 255);
imagefill($dstImg, 0, 0, $white);
$circle = imagecolorallocate($dstImg, 0, 0, 0);
imagefilledellipse($dstImg, $srcWidth / 2, $srcHeight / 2, $srcWidth, $srcHeight, $circle);
// 設置圓形的透明度
imagecolortransparent($dstImg, $white);
// 生成圓形圖片
imagecopy($dstImg, $srcImg, 0, 0, 0, 0, $srcWidth, $srcHeight);
imagedestroy($srcImg);
return $dstImg;
}
代碼中的“circleImg”函數接收一個圖片路徑,然后使用imagecreatefromstring()函數將其打開。接下來,通過imagesx()和imagesy()函數獲取圖片的寬度和高度。
然后,創建一個寬和高分別為原圖片寬度和高度的白色圓形圖片。利用imagefilledellipse()函數將圓形圖片填充為黑色圓形。然后使用imagecolortransparent()函數設置白色為透明色。
最后,使用imagecopy()函數將原圖片復制到新建的圓形圖片上,生成一個新的圓形圖片。
我們可以用下面的代碼來調用這個函數:
$imgPath = 'image.jpg';
$dstImg = circleImg($imgPath);
header('Content-Type: image/png');
imagepng($dstImg);
imagedestroy($dstImg);
這段代碼會將指定圖片路徑的圖片剪切成圓形,并顯示在瀏覽器中。
通過imagecopy()函數,我們可以輕松地將一張圖片剪切成任何形狀。如果你有同樣的需求,不妨試試吧。
上一篇css中幾個ul并排
下一篇php iframe刷新