> 백엔드 개발 > PHP 문제 > PHP에서 사진을 원형 그림으로 설정하는 방법

PHP에서 사진을 원형 그림으로 설정하는 방법

藏色散人
풀어 주다: 2023-03-13 17:48:01
원래의
3007명이 탐색했습니다.

PHP에서 이미지를 원형 이미지로 설정하는 방법: 1. PHP 샘플 파일을 만듭니다. 2. 투명한 이미지를 만듭니다. 2. "function yuan_img($imgpath) {...}" 메서드를 통해 이미지를 처리합니다. 그냥 둥글게 만드세요.

PHP에서 사진을 원형 그림으로 설정하는 방법

이 기사의 운영 환경: Windows 7 시스템, PHP 버전 7.1, DELL G3 컴퓨터

PHP에서 사진을 원형 그림으로 설정하는 방법은 무엇입니까?

php 이미지 순환 처리:

사용된 php gd 라이브러리 함수는

imagecolorat
imagesetpixel
로그인 후 복사

먼저 이미지를 원으로 처리합니다.

원본 이미지는 다음과 같습니다.


처리 통과 후 효과:

다음 공식을 사용하여 계산합니다.

(x-a)*(x-a)+(y-b)*(y-b)<r2
로그인 후 복사

공식의 성립은 현재 x, y 점이 원 안에 있음을 의미합니다.

x, y는 현재 좌표입니다.

a, b는 원의 중심 위치

r은 반경

먼저 투명한 그림을 만들고

그런 다음 픽셀이 원 안에 있는 것처럼 원본 이미지를 한 줄씩 스캔하고 거기에 없는 픽셀을 그립니다. 투명하게 유지하세요. color

function yuan_img($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 비디오 튜토리얼

위 내용은 PHP에서 사진을 원형 그림으로 설정하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿