현재 위치: > 최신 기사 목록> 동적 팔레트 생성을 지원하는 PHP 이미지 처리 스크립트를 작성하는 방법은 무엇입니까?

동적 팔레트 생성을 지원하는 PHP 이미지 처리 스크립트를 작성하는 방법은 무엇입니까?

M66 2025-07-04

웹 개발에서 이미지 처리는 썸네일, 워터 마킹, 자동 색상 조정 등과 같은 매우 일반적인 요구 사항입니다. 일부 시나리오는 개인화 된 아바타 및 예술적 효과 제작과 같은 시나리오에서 다양한 입력을 기반으로 컬러 팔레트를 동적으로 생성하고 그림에 적용해야합니다.
이 기사는 PHP를 사용하여 지원되는 이미지 처리 스크립트를 작성하는 방법을 알려줍니다.

기본 준비

이미지를 처리하기 위해 PHP에서 가장 일반적으로 사용되는 라이브러리는 GD 라이브러리 ( GD Extension)입니다. 시작하기 전에 PHP 환경이 설치 및 활성화되어 있는지 확인하십시오.

 php -m | grep gd

설치되지 않은 경우 비슷한 방식으로 설치할 수 있습니다 (예를 들어 Ubuntu를 취 함).

 sudo apt-get install php-gd
sudo service apache2 restart

스크립트 디자인 아이디어

  1. 매개 변수 수신 (예 : 색상, 사진 크기, 색상 튜닝 모드)

  2. 매개 변수를 기반으로 동적 색상 팔레트를 생성하십시오

  3. 캔버스를 만듭니다

  4. 팔레트에서 이미지를 그립니다

  5. 이미지를 출력하거나 저장합니다

샘플 코드

다음은 동적 팔레트와 간단한 렌더링 효과를 지원하는 완전한 예입니다.

 <?php
// 응답 헤더를 설정하십시오
header('Content-Type: image/png');

// 색상 팔레트 생성 기능을 정의하십시오
function generatePalette($baseColor, $count = 5) {
    $palette = [];
    list($r, $g, $b) = sscanf($baseColor, "#%02x%02x%02x");

    for ($i = 0; $i < $count; $i++) {
        $factor = 1 - ($i * 0.15);
        $palette[] = sprintf("#%02x%02x%02x",
            max(0, min(255, $r * $factor)),
            max(0, min(255, $g * $factor)),
            max(0, min(255, $b * $factor))
        );
    }

    return $palette;
}

// ~에서GET기본 색상을 읽는 매개 변수
$baseColor = isset($_GET['color']) ? $_GET['color'] : '#3498db';

// 색상 팔레트를 생성합니다
$palette = generatePalette($baseColor);

// 캔버스를 만듭니다
$width = 500;
$height = 100;
$image = imagecreatetruecolor($width, $height);

// 배경을 채우십시오
$white = imagecolorallocate($image, 255, 255, 255);
imagefill($image, 0, 0, $white);

// 색상 팔레트를 그립니다
$segmentWidth = $width / count($palette);

foreach ($palette as $index => $hex) {
    list($r, $g, $b) = sscanf($hex, "#%02x%02x%02x");
    $color = imagecolorallocate($image, $r, $g, $b);
    imagefilledrectangle(
        $image,
        $index * $segmentWidth,
        0,
        ($index + 1) * $segmentWidth,
        $height,
        $color
    );
}

// 선택 과목:다이어그램의 색상 코드에 레이블을 지정하십시오
foreach ($palette as $index => $hex) {
    $textColor = imagecolorallocate($image, 0, 0, 0);
    imagestring(
        $image,
        3,
        $index * $segmentWidth + 10,
        $height / 2 - 7,
        $hex,
        $textColor
    );
}

// 출력 이미지
imagepng($image);
imagedestroy($image);
?>

샘플 통화

위의 코드를 Palette.php 로 저장하면 다음과 같은 방법으로 액세스 할 수 있습니다.

 https://m66.net/palette.php?color=%23e74c3c

이것은 빨간색 ( #e74c3c )을 기반으로 팔레트를 생성하고 이미지를 반환합니다.

주목해야 할 것

  • 출력은 이미지 내용이므로 스크립트에 HTML 또는 공간 출력이있을 수 없으며 이미지가 손상됩니다.

  • 컬러 팔레트 수는 필요에 따라 유연하게 조정할 수 있습니다.

  • 보다 복잡한 응용 프로그램 시나리오의 경우 그라디언트, 임의의 색상 및 다양한 색상과 같은 고급 기능을 추가 할 수 있습니다.

요약

이 기사를 통해 색상 팔레트를 동적으로 생성하고 PHP를 사용하여 이미지로 렌더링하는 방법을 배웁니다. 이 작은 트릭은 아바타 생성기, 게임 스킨 구성, 테마 색상 미리보기 등과 같은 다양한 시나리오에 유연하게 적용될 수 있습니다.
앞으로는 색상 이론을 결합하여보다 조정 된 색상 팔레트를 생성하거나 AI를 결합하여 개인화 된 색 구성표를 생성하는 등 이에 따라 더 확장 할 수 있습니다.