我正在處理一個驗證碼圖像類型的腳本,我希望在我的圖像上交替每個字母的顏色,到目前爲止我的工作非常多,除了顏色值不是我期望的顏色值如何在PHP中設置GD圖像的正確顏色?
此$ multi_text_color變量應該是它隨機選取和顯示的顏色,它可以隨機選取顏色數組值 但是它在圖像上的顏色是3種顏色,沒有接近我想要的位置,所以我做錯了什麼這裏?
<?PHP
// note this is just the part I am having trouble with, I have taken everything else out that adds line and tilts the letters and stuff so just the color settings are in this bit
// My this part of my script takes each number/letter in a string and makes it a random color to put on the image
// set color values
$multi_text_color = "#FF3E96,#6A5ACD,#90EE90";
// put colors above into an array
$colors = explode(',', $multi_text_color);
// cycle through everything to add the letters/numbers to image
for($i = 0; $i < $characters; ++$i) {
$idx = rand(0, 2);
// notice my $colors variable has random number for the color array
$r = substr($colors[$idx], 1, 2); // shows: f6 or 8d or FF
$g = substr($colors[$idx], 3, 2); // shows: 3E or 32 or 5c
$b = substr($colors[$idx], 5, 2); // shows: 96 or 47 or fd
$font_color = imagecolorallocate($image, "$r", "$g", "$b");
// finish it up
imagettftext($image, $font_size, $angle, $x, $y, $font_color, $this->font, $code{$i});
}
?>
出於好奇,是否有一個原因,你沒有使用預先構建的解決方案?除非你正在做一些完全創新的事情,否則很可能你的驗證碼很容易被破壞。 ReCaptcha使用來自書籍的掃描單詞,一個尚未破解的系統,對殘障用戶提供了非常好的支持,並且設計精良以便於使用。 – Imagist 2009-08-01 06:45:00