Hallo,
ich weiß nicht, ob ich hier an der richtigen Stelle poste, aber ich würde gern mal eine Änderung an der 01_FHEMWEB.pm vorstellen, die ich in meinem FHEM gemacht habe. Ich habe nach einer Möglichkeit gesucht, einzelne SVG-Symbole in der Readingsgroup in der Größe anzupassen. Da ich so richtig nix gefunden habe, habe ich die Funktion FW_makeImage dahingehend angepasst, dass ich neben der Farbe mittels zweitem angehängtem @ auch einen Faktor angeben kann, mit welchem der Scale im SVG multipliziert wird:
##############################
sub
FW_makeImage(@)
{
my ($name, $txt, $class)= @_;
$txt = $name if(!defined($txt));
$class = "" if(!$class);
$class = "$class $name";
$class =~ s/\./_/g;
$class =~ s/@/ /g;
my $p = FW_iconPath($name);
return $name if(!$p);
if($p =~ m/\.svg$/i) {
if(open(FH, "$FW_icondir/$p")) {
<FH>; <FH>; <FH>; # Skip the first 3 lines;
my $data = join("", <FH>);
close(FH);
$data =~ s/[\r\n]/ /g;
$data =~ s/ *$//g;
$data =~ s/<svg/<svg class="$class"/;
my @atts = split(/@/,$name);
my $col = $atts[1] if($atts[1]);
my $resize = $atts[2] if($atts[2]);
if($col) {
$col =~ s/@//;
$col = "#$col" if($col =~ m/^([A-F0-9]{6})$/);
$data =~ s/fill="#000000"/fill="$col"/g;
$data =~ s/fill:#000000/fill:$col/g;
} else {
$data =~ s/fill="#000000"//g;
$data =~ s/fill:#000000//g;
}
if($resize) {
my @scale = split(/scale\(/,$data);
if ($scale[1])
{
@scale = split(/\)/,$scale[1]);
@scale = split(/,/,$scale[0]);
my $newScale1 = $scale[0]*$resize;
my $newScale2 = $scale[1]*$resize;
$data =~ s/scale\(.*,.*\)/scale\($newScale1,$newScale2)/g;
}
}
return $data;
} else {
return $name;
}
} else {
$class = "class='$class'" if($class);
return "<img $class src=\"$FW_ME/images/$p\" alt=\"$txt\" title=\"$txt\">";
}
}
Vielleicht ist das ja nützlich und wird mal ins FHEM übernommen...
Ronny