Identicon是一個基于字符串生成隨機頭像的工具,它能夠快速生成一個唯一、具有辨識度的圖片來代表一段文字或者一個賬戶。這樣的頭像常常用于社交網絡、論壇或者防止機器人惡意注冊等領域。
Identicon在PHP中非常容易實現,只需要使用PHP的GD擴展即可。首先需要導入GD庫:
if(!function_exists('imagecreate')){ echo "PHP GD library must be installed."; exit(); }其次我們可以使用下面的代碼生成一個Identicon:
$image = imagecreate($size, $size); imagecolorallocate($image, 255, 255, 255); //設定背景色為白色 $color = imagecolorallocate($image, $r, $g, $b); $color2 = imagecolorallocate($image, $b, $g, $r); for($x = 0; $x< $size; $x++){ for($y = 0; $y< $size; $y++){ if($x >= $size / 2) $color = $color2; if($x<= $size / 2 && $y<= $size / 2) imagesetpixel($image, $x, $y, $color); if($x >= $size / 2 && $y<= $size / 2) imagesetpixel($image, $x, $y, $color); if($x<= $size / 2 && $y >= $size / 2) imagesetpixel($image, $x, $y, $color); if($x >= $size / 2 && $y >= $size / 2) imagesetpixel($image, $x, $y, $color); } } header('Content-type: image/png'); imagepng($image); imagedestroy($image);在這里,我們生成一個大小為$size的圖片,然后把它的背景設為白色。接下來我們選擇兩個顏色$r,$g,$b以及$b,$g,$r。然后我們根據字符串的字母個數來決定頭像的形狀。這里我們使用的是常見的類四邊形頭像。最后,我們輸出圖片,并銷毀創建的對象。 比如說,我們使用Identicon來生成一個“Hello World”這個賬戶的頭像,那么我們可以使用如下的代碼:
$content = "Hello World"; $hash = md5($content); $size = 256; $r = hexdec(substr($hash, 0, 2)); $g = hexdec(substr($hash, 2, 2)); $b = hexdec(substr($hash, 4, 2)); $url = 'http://localhost/identicon.php?size=' . $size . '&hash=' . $hash;這里我們使用了字符串“Hello World”,并通過MD5算法加密得到了這個字符串的哈希值。哈希值被轉化為三種顏色的RGB值,最后生成一個$size大小的頭像,通過URL返回給客戶端。 以上就是Identicon php的使用方法,這個工具不僅方便快捷,而且能夠在某些場合下提供額外的安全保障。