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['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; }
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!