Maison >développement back-end >tutoriel php >Comment utiliser la bibliothèque GD en php pour transformer une image carrée en image circulaire (code)

Comment utiliser la bibliothèque GD en php pour transformer une image carrée en image circulaire (code)

不言
不言original
2018-08-20 15:48:434807parcourir

Ce que cet article vous apporte concerne la méthode (code) d'utilisation de PHP pour convertir une image carrée en image circulaire à l'aide de la bibliothèque GD. Il a une certaine valeur de référence. J'espère que les amis dans le besoin pourront s'y référer. vous sera utile.

Lorsque nous obtiendrons l'avatar WeChat, nous constaterons qu'il est carré lorsque nous le saisirons, mais en réalité, nous utilisons généralement des cercles.

Ci-dessous, je présenterai l'utilisation de la bibliothèque GD native PHP pour capturer l'image et la découper en coins arrondis. En fait, le code est très simple, je vais donc simplement télécharger le code. >

Recommandations associées :
<?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;
    }

Un exemple d'utilisation de la bibliothèque GD pour créer un diagramme circulaire en PHP, gd circle


PHP basé sur la bibliothèque graphique GD2 génère des vignettes d'images Partage de code Sketch,

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn