PHP는 이미지 처리 기능을 사용하여 그림을 그립니다.
아래 그림을 보시죠.
이 그림은 어떻게 그려야 할까요?
다음 단계에 따라 분석할 수 있습니다.
1. 그림을 그립니다
2. 그림을 그리는 데 필요한 색상을 준비합니다
3. 배경색 채우기
4. 대각선 두 개 그리기
5. 그 위에 원 그리기
6. 원 위에 직사각형 그리기
7. 사진 저장
8. 리소스 파기
1. 이 사진을 바탕으로 단계를 소개하겠습니다. 사용해야 하는 기능을 분석해 보겠습니다.
//使用imagecreate函数创建图片,返回资源 $img = imagecreate(500,500);
2. 이미지가 생성된 후 이미지 리소스에 색상을 추가해야 하며,
$颜色变量 = imagecolorallocate ( resource $图片资源 , int $红 , int $绿 , int $蓝 )
기능 사용하기 빨간색, 녹색, 파란색은 컴퓨터에서 그림을 조작하는 기본 색상 3가지입니다. 이 세 가지 색상이 결합되어 우리가 육안으로 볼 수 있는 모든 색상을 형성합니다.
그래서 imagecolorallocate는 먼저 이미지 리소스를 입력하고 이 리소스를 운영합니다. 이 이미지 자산의 색상을 준비합니다.
그림을 그릴 때 캔버스를 먼저 준비한 다음 물감을 준비하는 것과 같습니다.
이 사진에 따르면 준비해야 할 색상은
1. 녹색
2. 파란색
3. 검정색
4. 브라운
컴퓨터의 컬러 매칭 원리에 따라 할당하면 아래의 컬러 할당 코드는 다음과 같이 작성됩니다.
//红 $red = imagecolorallocate($img, 255, 0, 0); //绿 $green = imagecolorallocate($img, 0, 255, 0); //蓝 $blue = imagecolorallocate($img, 0, 0, 255); //棕 $yellow = imagecolorallocate($img, 121, 72, 0);
사용해야 할 몇 가지 사항 이 사진에서는 색상의 색상 값입니다.
3. 배경에 색상을 추가하여 채웁니다.
imagefilledrectangle ( resource $图片资源 , int $点1x轴, int $点1y轴 , int $点2x轴 , int $点2y轴 , int $color )
이 기능을 사용하려면 기하학에 대한 약간의 지식이 필요합니다.
1. 점은 x 좌표와 y 좌표로 구성됩니다
2. 두 점은 직선을 이룰 수 있습니다
3. 이 선이 수평 또는 수직이 아닌 경우 선은 아래와 같이 직사각형
을 형성할 수 있습니다.
점 1과 점 2는 직사각형으로 바뀔 수 있습니다. 따라서 두 개의 좌표점을 출력하여 캔버스를 채울 수 있습니다.
캔버스 전체를 채우고 싶다면
1번 지점이 캔버스의 x축이자 0 위치이고, 1번 지점의 y축도 캔버스의 0 위치입니다.
점 2의 x축은 캔버스의 500 위치이고, 점 2의 y축도 캔버스의 500 위치입니다.
4. 대각선 두 개를 그립니다
대각선을 그립니다. 대각선은 빨간색입니다.
첫 번째 대각선의 좌표는 0과 0, 500과 500
두 번째 대각선의 좌표는 500과 0, 0과 500
imageline($img, 0, 0, 500, 500, $red); imageline($img, 500, 0, 0, 500, $blue);
5. 그 위에 원을 그립니다
bool imagefilledellipse ( resource $图片资源 , int $圆心x , int $圆心y , int $圆的宽 , int $圆的高 , int $圆的颜色 ) imagefilledellipse($img, 250, 250, 200, 200, $yellow);
이 자원을 조작하여 원의 중심 좌표를 씁니다. 그런 다음 길이와 너비를 씁니다. 길이와 너비가 일정하면 완벽한 원이고, 일정하지 않으면 타원입니다.
6. 원 위에 직사각형을 그려주세요
rree이것에 대해서는 위에서 이야기했으므로 생략하겠습니다. 자세히 살펴보세요.
7. 사진 저장
imagefilledrectangle($img, 200, 200, 300, 300, $blue);
8.bool imagejpeg ( resource $image [, string $filename])
최종 결합 코드를 살펴보겠습니다:
imagedestroy($img);