Moin in die Runde,
ich habe da mal ein bischen rumgespielt, nach dem mir es zu unkomfortabel war so viele Bilder zu erstellen, lasse ich das dynamisch machen.
Meine grafischen Fähigkeiten sind nicht so toll, falls einer eine neue Vorlage generieren möchte / könnte?
Die einzelnen Farben / Zustände können nun im Script eingestellt werden. 
Hierzu die Vorlage.

und das Script
<?
$id_anwesenheitskreis = 46115 /*[Wohnung\Übersicht Anwesenheit \Anwesenheitskreis\Anwesenheitskreis]*/;
$lesen = "D:\IP-Symcon\webfront\img\geo\\vorlage.png"; // Biite die doppelten \\ vor dem Bildnamen lassen
$schreiben = "D:\IP-Symcon\webfront\img\geo\\anwesenheit.png"; // Biite die doppelten \\ vor dem Bildnamen lassen
// Grafik zur Beareitung einlesen
$lesen = imagecreatefrompng($lesen);
// Anzeigefarben setzen
$rot = array("178", "0", "0");
$gelb = array("178", "200", "0");
$gruen = array("0", "178", "0");
$blau = array("0", "0", "178");
$hintergrund = array("10", "16", "22");
// Haus (1,1,1)
if (GetValue($id_alarm_status) == 0) {
farbesetzen ($lesen, $schreiben, array("1", "1", "1"), $rot);
}
elseif (GetValue($id_alarm_status) == 1) {
farbesetzen ($lesen, $schreiben, array("1", "1", "1"), $gelb);
}
elseif (GetValue($id_alarm_status) == 2) {
farbesetzen ($lesen, $schreiben, array("1", "1", "1"), $gruen);
}
elseif (GetValue($id_alarm_status) == 3) {
farbesetzen ($lesen, $schreiben, array("1", "1", "1"), $blau);
}
// Mann (2,2,2)
if (GetValue($id_anwesenheit_1) == true) {
farbesetzen ($lesen, $schreiben, array("2", "2", "2"), $gruen);
} else {
farbesetzen ($lesen, $schreiben, array("2", "2", "2"), $hintergrund);
}
// Frau (3,3,3)
if (GetValue($id_anwesenheit_2) == true) {
farbesetzen ($lesen, $schreiben, array("3", "3", "3"), $gruen);
} else {
farbesetzen ($lesen, $schreiben, array("3", "3", "3"), $hintergrund);
}
// Mädchen (4,4,4)
if (GetValue($id_anwesenheit_2) == true) {
farbesetzen ($lesen, $schreiben, array("4", "4", "4"), $gruen);
} else {
farbesetzen ($lesen, $schreiben, array("4", "4", "4"), $hintergrund);
}
// Junge (5,5,5)
if (GetValue($id_anwesenheit_2) == true) {
farbesetzen ($lesen, $schreiben, array("5", "5", "5"), $gruen);
} else {
farbesetzen ($lesen, $schreiben, array("5", "5", "5"), $hintergrund);
}
SetValue($id_anwesenheitskreis, "<img src='/img/geo/anwesenheit.png#".time()."' >");
function farbesetzen($lesen, $schreiben, $farbealt, $farbeneu){
// ggf anpassen
$zielbreite = 200;
$zielhoehe = 200;
$farbeneu = imagecolorallocate($lesen, $farbeneu[0], $farbeneu[1], $farbeneu[2]);
$bildbreite = imagesx($lesen);
$bildhoehe = imagesy($lesen);
for ($ix = 0; $ix <= $bildbreite - 1; $ix++){
for ($iy = 0; $iy <= $bildhoehe - 1; $iy++){
$rgb = imagecolorsforindex($lesen, imagecolorat($lesen, $ix, $iy));
$pixel = array($rgb["red"], $rgb["green"], $rgb["blue"]);
if($pixel == $farbealt){
imagesetpixel ($lesen, $ix, $iy, $farbeneu);
}
}
}
# wenn Bildgröße angepasst werden soll
#$bildneu = ImageCreate($zielbreite,$zielhoehe);
#ImageCopyResized($bildneu,$lesen,0,0,0,0,$zielbreite,$zielhoehe,$bildbreite,$bildhoehe);
#imagepng($bildneu, $schreiben);
# wenn in Original Größe ausgegeben wird
imagepng($lesen, $schreiben);
}
?>
Grüße
dzvo