현재 위치: > 최신 기사 목록> ImageOpenPolygon ()은 투명한 배경 이미지의 그리기를 지원합니까? 호환성 분석

ImageOpenPolygon ()은 투명한 배경 이미지의 그리기를 지원합니까? 호환성 분석

M66 2025-05-18

PHP의 GD 라이브러리에서 ImageOpenPolygon () 함수는 이미지에 열린 다각형을 그리는 데 사용됩니다. ImagePolygon () (닫힌 다각형)과 비교하여 ImageOpenPolygon ()은 시작 및 종말점을 자동으로 시각적으로 연결하지 않습니다. 일반적인 개발 요구 사항은 투명한 배경을 가진 이미지에 다양한 모양을 그리는 것입니다. 그렇다면 ImageOpenPolygon ()이 투명한 배경을 지원하는 이미지에서 올바르게 작동 할 수 있습니까? 이 기사는 이것을 자세히 분석합니다.

1. ImageOpenPolygon () 함수 소개

ImageOpenPolygon () 의 기본 구문은 다음과 같습니다.

 bool imageopenpolygon(
    GdImage $image,
    array $points,
    int $num_points,
    int $color
)
  • $ 이미지 : imageCreatetRueColor () 또는 유사한 함수에 의해 생성 된 GD 이미지 리소스.

  • $ 포인트 : 포인트의 좌표 배열.

  • $ num_points : 포인트 수.

  • $ color : 선을 그리는 데 사용되는 색상 (이미지에 할당 된 색상 식별자).

참고 :이 기능을 사용하려면 PHP의 GD 확장을 활성화해야합니다.

2. 투명한 배경 이미지 생성

투명한 배경을 지원하려면 일반적으로 다음을 따라야합니다.

  1. imageCreatetRueColor ()를 사용하여 진정한 색상 이미지를 만듭니다.

  2. Alpha Channel 저장을 활성화합니다 ( ImagesAvealpha () 사용).

  3. 완전히 투명한 배경색을 채우십시오.

예:

 <?php
// 투명한 배경으로 이미지를 만듭니다
$width = 400;
$height = 300;
$image = imagecreatetruecolor($width, $height);

// 완전한 것을 저장할 수 있습니다alpha채널 정보
imagesavealpha($image, true);

// 투명한 배경으로 가득합니다
$transparent = imagecolorallocatealpha($image, 0, 0, 0, 127);
imagefill($image, 0, 0, $transparent);

// 다각형 점을 정의하십시오
$points = [
    50, 50,
    300, 100,
    250, 250,
    100, 200
];

// 도면 색상을 정의하십시오
$color = imagecolorallocate($image, 255, 0, 0); // 빨간색

// 열린 다각형을 그립니다
imageopenpolygon($image, $points, count($points) / 2, $color);

// 브라우저에 출력
header('Content-Type: image/png');
imagepng($image);

// 자원을 파괴하십시오
imagedestroy($image);
?>

위의 코드를 사용하면 투명한 배경에 빨간색 열린 다각형을 그릴 수 있습니다.

3. 투명한 배경에서 ImageOpenPolygon ()의 호환성 분석

GD 라이브러리의 기본 구현에서 ImageOpenPolygon () 은 본질적으로 일련의 라인 세그먼트를 그리며 이미지의 배경 투명성 속성에 영향을 미치지 않습니다. 따라서 투명한 배경 이미지에 대한 호환성이 좋으며 다음에 반영됩니다.

  • 알파 채널은 파괴되지 않습니다 . 이미지가 올바르게 활성화되면 ImageOpenPolygon ()이 그려진 후에도 이미지는 여전히 투명한 배경을 유지합니다.

  • 색상 처리는 정상입니다 : 지정된 드로잉 색상이 투명하지 않은 한 (즉, 투명성은 imagecolorallocatealpha ( )를 사용하여 지정되지 않지만, 그린 선은 불투명하지만 배경은 투명하게 유지됩니다.

  • 성능 영향은 작습니다 . 폐쇄 다각형과 비교할 때 열린 다각형에 하나의 라인 세그먼트 만 그려져 성능에 큰 차이가 없습니다.

그러나 두 지점에주의를 기울여야합니다.

  • 비 트루 컬러 이미지를 사용하는 경우 (예 : imageCreate ( )에서 생성 된 팔레트 이미지)이면 투명성 처리가 불완전하여 배경색이 완전히 투명하지 않도록 할 수 있습니다.

  • JPEG 형식으로 내보낼 때 투명 부분이 검은 색 또는 흰색으로 채워집니다. PNG 형식을 사용하여 투명한 배경 이미지를 저장하는 것이 좋습니다.

4. 요약

ImageOpenPolygon ()은 투명한 배경을 가진 이미지에 모양을 완전히 그릴 수 있으며 호환성이 우수하며 원래 투명한 효과를 파괴하지 않습니다. 알파 채널을 올바르게 활성화하고 저장하도록주의하십시오.

투명한 배경으로 복잡한 그래픽을 동적으로 생성하고 웹 페이지에 표시하는 등 더 나아가 야하는 경우 URL을 통해 생성 된 PNG 이미지를 전달할 수 있습니다.