>백엔드 개발 >PHP 튜토리얼 >PHP에서 색상을 정의하고 점, 선 및 직사각형을 그리는 방법에 대한 자세한 분석?

PHP에서 색상을 정의하고 점, 선 및 직사각형을 그리는 방법에 대한 자세한 분석?

WBOY
WBOY원래의
2021-10-19 17:14:112661검색

저번 글에서 "PHP로 사진 출력하는 방법은?"을 가져왔습니다. (범례에 대한 자세한 설명) ", PHP에서 이미지를 출력하는 방법을 자세히 소개합니다. 이 기사에서는 계속해서 PHP에서 이미지를 그리는 방법을 보여줍니다. 도움이 되길 바랍니다!

PHP에서 색상을 정의하고 점, 선 및 직사각형을 그리는 방법에 대한 자세한 분석?

PHP에서 이미지를 그리는 것은 여전히 ​​이전 글의 캔버스를 기반으로 하고, 캔버스를 생성한 후, 캔버스에 이미지를 그립니다. 이미지라고 하면 색상을 먼저 생각하기 때문에 먼저 PHP에서 이미지의 색상을 어떻게 정의해야 하는지 살펴보겠습니다.

이미지 정의 색상

PHP를 사용하여 이미지를 작동할 때 이 아름다운 이미지의 윤곽을 다른 색상으로 설정하는 것은 불가피합니다. 그렇다면 PHP에서 이미지에 색상을 어떻게 제공해야 할까요? 이번에는 imagecolorallocate()와 imagecolorallocatealpha()라는 두 가지 함수를 사용하겠습니다. 다음으로 이 두 기능을 어떻게 사용하는지 살펴보겠습니다.

  • imagecolorallocate()Functionimagecolorallocate()函数

imagecolorallocate() 函数能够为图像分配颜色,想要设置多种颜色的话,需要多次调用该函数,函数的语法格式:

imagecolorallocate(resource $image, int $red, int $green, int $blue)

其中,$image表示了需要设置颜色的图像,该函数会返回一个标识符,表示了给定的RGB成分组成的颜色,$red,$green 和 $blue 分别是所需要的颜色的红,绿,蓝成分,取值范围是 0 到 255 的整数或者十六进制的 0x00 到 0xFF。

示例如下:

<?php
    $image = imagecreate(100, 100);
    $blue = imagecolorallocate($image, 0, 0, 255);
    header(&#39;Content-type:image/jpeg&#39;);
    imagejpeg($image);
    imagedestroy($image);
?>

输出结果:

PHP에서 색상을 정의하고 점, 선 및 직사각형을 그리는 방법에 대한 자세한 분석?

  •  imagecolorallocatealpha()函数

 imagecolorallocatealpha()函数与imagecolorallocate()函数相比,它们的作用是相同的,但是多了一个用来设置透明参数的alpha,它的语法格式如下:

imagecolorallocatealpha(resource $image, int $red, int $green, int $blue, int $alpha)

其中,前面的参数与imagecolorallocate()函数的参数表示为一致的,$alphab表示的是透明度的参数,取值范围在 0 到 127 之间,0 表示完全不透明,127 则表示完全透明。

示例如下:

<?php
    $size=300;
    $image=imagecreatetruecolor($size,$size);
    $back=imagecolorallocate($image,0,0,0);
    $border=imagecolorallocate($image,255,255,255);
    imagefilledrectangle($image,0,0,$size-1,$size-1,$back);
    imagerectangle($image,0,0,$size-1,$size-1,$border);
    $yellow_x=100;
    $yellow_y=75;
    $red_x=100;
    $red_y=165;
    $blue_x=187;
    $blue_y=125;
    $radius=150;
    //用alpha值分配一些颜色
    $yellow=imagecolorallocatealpha($image,200,200,0,75);
    $red=imagecolorallocatealpha($image,200,0,0,75);
    $blue=imagecolorallocatealpha($image,0,0,200,75);
    //画3个交迭的圆
    imagefilledellipse($image,$yellow_x,$yellow_y,$radius,$radius,$yellow);
    imagefilledellipse($image,$red_x,$red_y,$radius,$radius,$red);
    imagefilledellipse($image,$blue_x,$blue_y,$radius,$radius,$blue);
    //不要忘记输出正确的header!
    header(&#39;Content-type:image/png&#39;);
    //最后输出结果
    imagepng($image);
    imagedestroy($image);
?>

输出结果:

PHP에서 색상을 정의하고 점, 선 및 직사각형을 그리는 방법에 대한 자세한 분석?

由此通过imagecolorallocate() 和 imagecolorallocatealpha()这两个函数已经能够实现在图像上定义颜色了。同时图像不仅是由颜色构成的,还需要有点、线还有不同的形状。那接下来我们来看一看,应该怎样去解决这些问题。

绘制点和线

绘制点和线可以说是PHP中绘制图像最基本的操作了,虽然很基本,但是灵活应用起来,可以通过它们绘制出更多复杂的图像,我们可以通过 imagesetpixel() 函数在画布中绘制一个点,也可以设置点的颜色,它的函数的语法格式如下:

imagesetpixel(resource $image, int $x, int $y, int $color)

其中,$image表示的是创建的画布,$x和$y表示的是在($x,$y)这个坐标点,这个坐标点的颜色是$color。

绘制一条线段则可以使用 imageline() 函数,其语法格式如下:

imageline(resource $image, int $x1, int $y1, int $x2, int $y2, int $color)

其中,表示在坐标($x1,$y1)到坐标($x2,$y2)的一条颜色为$color的线段。

接下来我们可以通过循环和随机数的结合来进行示例:

<?php
    $img = imagecreate(200, 100);
    imagecolorallocate($img, 0, 0, 0);
    $blue = imagecolorallocate($img, 0, 0, 255);
    $red = imagecolorallocate($img, 255, 0, 0);
    for ($i=0; $i <= 50; $i++) {
        $color = imagecolorallocate($img, rand(0, 255), rand(0, 255), rand(0, 255));
        imagesetpixel($img, rand(0, 200), rand(0, 100), $color);
        imageline($img, rand(0, 200), rand(0, 100), rand(0, 200), rand(0, 100), $color);
    }
    header(&#39;Content-type:image/jpeg&#39;);
    imagejpeg($img);
    imagedestroy($img);
?>

输出结果:

PHP에서 색상을 정의하고 점, 선 및 직사각형을 그리는 방법에 대한 자세한 분석?

绘制矩形

在PHP中,我们想要绘制矩形的话,需要通过 imagerectangle() 或者 imagefilledrectangle()

imagecolorallocate() 함수는 이미지에 색상을 할당할 수 있습니다. 여러 색상을 설정하려면 호출해야 합니다. it multiple times 이 함수는 함수의 구문 형식입니다.

imagerectangle(resource $image, int $x1, int $y1, int $x2, int $y2, int $color)
imagefilledrectangle(resource $image, int $x1, int $y1, int $x2, int $y2, int $color)

그 중 $image는 색상을 설정해야 하는 이미지를 나타냅니다. 이 함수는 주어진 RGB 구성 요소인 $red로 구성된 색상을 나타내는 식별자를 반환합니다. , $green 및 $blue 각각 필요한 색상의 빨간색, 녹색, 파란색 구성 요소이며 값 범위는 0~255 사이의 정수 또는 16진수 0x00~0xFF입니다.

예제는 다음과 같습니다.

<?php
    $img = imagecreate(300, 150);
    imagecolorallocate($img, 255, 255, 255);
    $green = imagecolorallocate($img, 0, 255, 0);
    $blue = imagecolorallocate($img, 0, 0, 255);
    imagerectangle($img, 5, 5, 145, 145, $green);
    imagefilledrectangle($img, 150, 5, 295, 145, $blue);
    header(&#39;Content-type:image/jpeg&#39;);
    imagejpeg($img);
    imagedestroy($img);
?>

출력 결과:

PHP에서 색상을 정의하고 점, 선 및 직사각형을 그리는 방법에 대한 자세한 분석?PHP에서 색상을 정의하고 점, 선 및 직사각형을 그리는 방법에 대한 자세한 분석?

🎜🎜🎜🎜imagecolorallocatealpha()Function🎜🎜🎜imagecolorallocate() 함수와 비교하면, 함수는 동일하지만 투명도 매개변수를 설정하는 데 사용되는 추가 알파가 있습니다. 구문 형식은 다음과 같습니다. 🎜rrreee🎜 그 중 이전 매개변수는 imagecolorallocate() 함수의 매개변수와 일치하며 $alphab는 투명도 매개변수에서 값 범위는 0에서 127 사이이며, 0은 완전히 불투명함을 의미하고 127은 완전히 투명함을 의미합니다. 🎜🎜예제는 다음과 같습니다. 🎜🎜rrreee🎜출력 결과: 🎜🎜🎜PHP에서 색상을 정의하고 점, 선 및 직사각형을 그리는 방법에 대한 자세한 분석?🎜🎜이제 imagecolorallocate() 및 imagecolorallocatealpha() 두 함수를 통해 이미지의 색상을 정의할 수 있습니다. 동시에 이미지는 색상뿐만 아니라 점, 선 및 다양한 모양으로 구성됩니다. 그러면 이러한 문제를 해결하는 방법을 살펴보겠습니다. 🎜🎜🎜🎜점과 선 그리기🎜🎜🎜🎜🎜점과 선 그리기는 PHP에서 이미지를 그리는 가장 기본적인 작업이라고 할 수 있습니다. 매우 기본적이지만, 유연하게 적용하면 이를 통해 더 복잡한 이미지를 그릴 수 있습니다. . imagesetpixel() 함수를 통해 캔버스에 점을 그릴 수 있으며, 해당 함수의 구문 형식은 다음과 같습니다. 🎜rrreee🎜 $image는 생성된 캔버스를 나타내고 $x와 $y는 ($x, $y)의 좌표점을 나타내며 이 좌표점의 색상은 $color입니다. 🎜🎜🎜선분을 그리려면 imageline() 함수를 사용하면 됩니다. 구문 형식은 다음과 같습니다. 🎜rrreee🎜그 중 좌표($x1, $y1)부터를 의미합니다. 좌표 ($x2, $y2) $color 색상의 선분. 🎜🎜🎜다음으로 루프와 난수를 결합하여 예를 들 수 있습니다. 🎜rrreee🎜출력 결과: 🎜🎜🎜PHP에서 색상을 정의하고 점, 선 및 직사각형을 그리는 방법에 대한 자세한 분석?🎜🎜🎜🎜🎜사각형 그리기🎜🎜🎜🎜🎜PHP에서 직사각형을 그리려면 imageRectangle() 또는 imagefilled직사각형() 함수입니다. imagefilled직사각형() 함수는 직사각형을 그린 후에 직사각형을 채우지만, imageRectangle() 함수는 그렇지 않습니다. 구문 형식은 다음과 같습니다. 🎜🎜rrreee🎜둘 중 둘 다 왼쪽 위 모서리 좌표($x1, $y1)와 오른쪽 아래 모서리 좌표($x2, $y2)로 직사각형을 그리는 것을 나타냅니다. 또한 imageRectangle() 함수 뒤의 색상은 직사각형 가장자리의 색상을 나타내고, imagefilledRectangle() 함수 뒤의 색상은 직사각형 내의 채우기 색상을 나타냅니다. 🎜🎜🎜 다음은 예제를 통해 imageRectangle() 또는 imagefilled직사각형() 함수를 통해 직사각형을 그립니다. 🎜rrreee🎜출력 결과: 🎜🎜🎜🎜🎜

추천 학습: "PHP 비디오 튜토리얼"

위 내용은 PHP에서 색상을 정의하고 점, 선 및 직사각형을 그리는 방법에 대한 자세한 분석?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.