首頁 >後端開發 >php教程 >php使用GD庫將正方形圖片變成圓形圖片的方法(程式碼)

php使用GD庫將正方形圖片變成圓形圖片的方法(程式碼)

不言
不言原創
2018-08-20 15:48:434794瀏覽

這篇文章帶給大家的內容是關於php使用GD庫將正方形圖片變成圓形圖片的方法(程式碼),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

當我們取得到微信頭像時,我們抓取下來會發現是正方形,但是現實中我們一般都是用圓形的。

以下我將介紹用php 原生GD庫,將圖片抓取下來後切成圓角,其實程式碼很簡單,所以就直接是上程式碼了

<?php
    $path = "";//文件绝对路径
    $this->yuanjio($path);
     /*
     * 将图片切成圆角
     */
    public function yuanjiao($imgpath){
        $ext     = pathinfo($imgpath);
        $src_img = null;
        switch ($ext[&#39;extension&#39;]) {
            case &#39;jpg&#39;:
                $src_img = imagecreatefromjpeg($imgpath);
                break;
            case &#39;png&#39;:
                $src_img = imagecreatefrompng($imgpath);
                break;
        }
        $wh  = getimagesize($imgpath);
        $w   = $wh[0];
        $h   = $wh[1];
        $w   = min($w, $h);
        $h   = $w;
        $img = imagecreatetruecolor($w, $h);
        //这一句一定要有
        imagesavealpha($img, true);
        //拾取一个完全透明的颜色,最后一个参数127为全透明
        $bg = imagecolorallocatealpha($img, 255, 255, 255, 127);
        imagefill($img, 0, 0, $bg);
        $r   = $w / 2; //圆半径
        $y_x = $r; //圆心X坐标
        $y_y = $r; //圆心Y坐标
        for ($x = 0; $x < $w; $x++) {
            for ($y = 0; $y < $h; $y++) {
                $rgbColor = imagecolorat($src_img, $x, $y);
                if (((($x - $r) * ($x - $r) + ($y - $r) * ($y - $r)) < ($r * $r))) {
                    imagesetpixel($img, $x, $y, $rgbColor);
                }
            }
        }
        return $img;
    }

相關推薦:

PHP中使用GD庫建立圓形餅圖的例子,gd圓形

#基於GD2圖形庫的PHP產生圖片縮圖類程式碼分享,

以上是php使用GD庫將正方形圖片變成圓形圖片的方法(程式碼)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn