Also ich habe aus langeweile ein kleines PHP script geschrieben, und um meinen Post count bisschen zu steigern poste ich das script mal hier für euch.
Es liest die bilder aus dem vor gegebenen ordner = SIG_DIR..
Ihr hab auch die möglichkeit eine text zeile auf das bild zu generieren und auch noch mit verschiedenen fonts. FONT_DIR
Die font dateien müssen .ttf sein.
Das ganze wird durch das array $config gesteuert, die namen sind offensichtlich das es keine grossen erklärungs worte braucht...
Nur wenn ihr es zum avatar beutzen wollt müsst ihr das script per GET method aufrufen....Danach könnt ihr auch über die GET methode alle $config mitglieder ändern..
Hoffe ihr habt spass mit dem ding...

Code:
rand_sig.php?generate=avatar&resize=1&width=120&height=120&generate_text=1&avatar_dir=ava&text=Rise&text_size=14&text_pos_x=5&text_pos_y=110
Code:
<?php
define("SIG_DIR", "signatures");
define("FONT_DIR", "fonts");
define("DEFAULT_FONT", "");
$config = array(
'resize' => TRUE, 'width' => 650, 'height' => 200, 'text' => "NinjaGeek", 'generate_text' => TRUE, 'use_custom_font' => TRUE, 'random_font' => TRUE, 'text_size' => 22, 'text_pos_x' => 50, 'text_pos_y' => 50, 'text_angle' => 0 );
if(isset($_GET['generate']) && $_GET['generate'] == "avatar") {
$config["generate"] = $_GET['generate']; foreach($_GET as $index => $define) {
$config[$index] = (isset($_GET[$index])) ? $_GET[$index] : $config[$index];
}
$new_path = (!array_key_exists("avatar_dir", $config)) ? SIG_DIR : $_GET['avatar_dir'];
define("AVA_DIR", $new_path);
}
if(isset($new_path)) {
$new_path = AVA_DIR;
}else{
$new_path = SIG_DIR;
}
$signatures = scandir($new_path);
$clear_array = array();
foreach($signatures as $value) {
if(is_file($new_path."/".$value)) {
$clear_array[] = $value; }
}
$signatures = $clear_array; unset($clear_array); $random_max = (count($signatures) - 1);
$random = rand(0, $random_max);
$image_path = $new_path."/".$signatures[$random];
if(!@$size = getimagesize($image_path)) {
die("Error, getimagesize() failed!");
}
switch($size['mime']) {
case "image/gif":
$image = imagecreatefromgif($image_path);
break;
case "image/jpeg":
$image = imagecreatefromjpeg($image_path);
break;
case "image/png":
$image = imagecreatefrompng($image_path);
break;
default:
die("Not supported image format: {$size['mime']}");
}
if($config['resize']) {
$resize_im = imagecreatetruecolor($config['width'], $config['height']);
imagecopyresampled($resize_im, $image, 0, 0, 0, 0, $config['width'], $config['height'], $size[0], $size[1]);
$image = $resize_im; }
if($config['generate_text']) {
$color = imagecolorallocate($image, 255,0,0);
$fonts = array(); if($config['random_font']) {
foreach(scandir(FONT_DIR) as $font) {
if(is_file(FONT_DIR."/".$font)) {
$fonts[] = $font;
}
}
$font_max = (count($fonts) - 1);
$random_font = rand(0, $font_max);
}
if($config['use_custom_font']) {
$font = (@$random_font) ? $fonts[$random_font] : DEFAULT_FONT;
$font = FONT_DIR."/".$font; imagettftext($image, $config['text_size'], $config['text_angle'], $config['text_pos_x'], $config['text_pos_y'], $color, $font, $config['text']);
}else{
imagestring($image, $config['text_size'], $config['text_pos_x'], $config['text_pos_y'], $config['text'], $color);
}
}
header("Content-type: image/png");
imagepng($image); imagedestroy($image); ?>