웹 개발에서 이미지 처리는 썸네일, 워터 마킹, 자동 색상 조정 등과 같은 매우 일반적인 요구 사항입니다. 일부 시나리오는 개인화 된 아바타 및 예술적 효과 제작과 같은 시나리오에서 다양한 입력을 기반으로 컬러 팔레트를 동적으로 생성하고 그림에 적용해야합니다.
이 기사는 PHP를 사용하여 지원되는 이미지 처리 스크립트를 작성하는 방법을 알려줍니다.
이미지를 처리하기 위해 PHP에서 가장 일반적으로 사용되는 라이브러리는 GD 라이브러리 ( GD Extension)입니다. 시작하기 전에 PHP 환경이 설치 및 활성화되어 있는지 확인하십시오.
php -m | grep gd
설치되지 않은 경우 비슷한 방식으로 설치할 수 있습니다 (예를 들어 Ubuntu를 취 함).
sudo apt-get install php-gd
sudo service apache2 restart
매개 변수 수신 (예 : 색상, 사진 크기, 색상 튜닝 모드)
매개 변수를 기반으로 동적 색상 팔레트를 생성하십시오
캔버스를 만듭니다
팔레트에서 이미지를 그립니다
이미지를 출력하거나 저장합니다
다음은 동적 팔레트와 간단한 렌더링 효과를 지원하는 완전한 예입니다.
<?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를 결합하여 개인화 된 색 구성표를 생성하는 등 이에 따라 더 확장 할 수 있습니다.