在我的網站上,我有一個PHP腳本,它基於$_GET
查詢將變成同一圖像的重新着色版本。查詢爲07a
的示例爲available here。透明png上的漸變疊加
這裏是PHP腳本,做這樣的:
<?php
if (isset($_GET['color']) && $_GET['color'] !== "") $color = preg_match('/^([a-fA-F0-9]{3}|[a-fA-F0-9]{6})$/',$_GET['color']) ? $_GET['color'] : '777777';
else $color = '000000';
if (strlen($color) === 3) $color = $color[0].$color[0].$color[1].$color[1].$color[2].$color[2];
$color = str_split($color,2);
foreach ($color as $k=>$m){ $color[$k] = intval($color[$k],16); }
$img = imageCreateFromPng('splat-base.png');
$background = imagecolorallocate($img, 0, 0, 0);
imagecolortransparent($img, $background);
imagealphablending($img, false);
imagesavealpha($img, true);
imagefilter($img, IMG_FILTER_COLORIZE, intval($color[0] - 255 ,16), $color[1], $color[2]);
header('Content-type: image/png');
imagePng($img);
imagedestroy($img);
exit;
?>
的實際工作是由imagefilter
函數完成,剩下的只是保持透明度。我想要做的是,通過$_GET
發送2個顏色值,並使用給定的顏色值創建應用於圖像的從上到下的漸變。下面是與值是08f
和0a7
一個例子(較淺的顏色將總是第一個):
的一種可能的解決方案,我認爲是產生相同大小的圖像作爲我splat-base.png
(1000× 1000像素)與漸變,然後用一些欺騙適用於圖示圖像,但我不知道如何去產生該漸變圖像或如何將其應用於splat圖像。
我沒有像ImageMagick那樣安裝PHP擴展的能力,所以我必須使用PHP和只使用這些庫的內置函數。
這似乎是一個可行的解決方案。謝謝你的回答! – SeinopSys