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

來源:互聯網
上載者:User
本篇文章給大家帶來的內容是關於php使用GD庫將正方形圖片變成圓形圖片的方法(代碼),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所協助。

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

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

<?php    $path = "";//檔案絕對路徑    $this->yuanjio($path);     /*     * 將圖片切成圓角     */    public function yuanjiao($imgpath){        $ext     = pathinfo($imgpath);        $src_img = null;        switch ($ext['extension']) {            case 'jpg':                $src_img = imagecreatefromjpeg($imgpath);                break;            case 'png':                $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;    }
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.