ホームページ  >  記事  >  バックエンド開発  >  PHPでGDライブラリを使用して正方形の画像を円形の画像に変換する方法(コード)

PHPでGDライブラリを使用して正方形の画像を円形の画像に変換する方法(コード)

不言
不言オリジナル
2018-08-20 15:48:434756ブラウズ

この記事の内容は、PHP で GD ライブラリを使用して正方形の画像を円形の画像に変換する方法 (コード) に関するものです。一定の参考値があります。必要な友人が参考にしていただければ幸いです。役に立ちます。助かりました。

WeChat のアバターを手に取ると四角形に見えますが、実際には円形を使用することが多いです。

以下では、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;
    }

関連する推奨事項:

GD ライブラリを使用して PHP で円グラフを作成する例、gd Circle

画像サムネイル クラスを生成するGD2 グラフィックス ライブラリに基づく PHP コード共有、

以上がPHPでGDライブラリを使用して正方形の画像を円形の画像に変換する方法(コード)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。