SVG: Patch from betateilchen:

http://forum.fhem.de/index.php?topic=18058.new#new


git-svn-id: https://svn.fhem.de/fhem/trunk@4502 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
rudolfkoenig
2013-12-29 18:33:49 +00:00
parent 7f8f0f75f3
commit c11641cbbd

View File

@@ -1508,45 +1508,50 @@ SVG_pO($)
################## ##################
# this is a helper function which creates a PNG image from a given plot # this is a helper function which creates a PNG image from a given plot
sub plotAsPng(@) { sub
my (@plotName) = @_; plotAsPng(@)
my (@webs, $mimetype, $svgdata, $rsvg, $pngImg); {
my (@plotName) = @_;
my (@webs, $mimetype, $svgdata, $rsvg, $pngImg);
@webs=devspec2array("TYPE=FHEMWEB"); @webs=devspec2array("TYPE=FHEMWEB");
foreach(@webs) { foreach(@webs) {
if(!InternalVal($_,'TEMPORARY',undef)) { if(!InternalVal($_,'TEMPORARY',undef)) {
$FW_wname=InternalVal($_,'NAME',''); $FW_wname=InternalVal($_,'NAME','');
last; last;
} }
} }
#Debug "FW_wname= $FW_wname, plotName= $plotName[0]"; #Debug "FW_wname= $FW_wname, plotName= $plotName[0]";
$FW_RET = undef; $FW_RET = undef;
$FW_webArgs{dev} = $plotName[0]; $FW_webArgs{dev} = $plotName[0];
$FW_webArgs{logdev} = InternalVal($plotName[0], "LOGDEVICE", ""); $FW_webArgs{logdev} = InternalVal($plotName[0], "LOGDEVICE", "");
$FW_webArgs{gplotfile} = InternalVal($plotName[0], "GPLOTFILE", ""); $FW_webArgs{gplotfile} = InternalVal($plotName[0], "GPLOTFILE", "");
$FW_webArgs{logfile} = InternalVal($plotName[0], "LOGFILE", "CURRENT"); $FW_webArgs{logfile} = InternalVal($plotName[0], "LOGFILE", "CURRENT");
$FW_pos{zoom} = $plotName[1] if $plotName[1]; $FW_pos{zoom} = $plotName[1] if $plotName[1];
$FW_pos{off} = $plotName[2] if $plotName[2]; $FW_pos{off} = $plotName[2] if $plotName[2];
($mimetype, $svgdata) = SVG_showLog("unused"); ($mimetype, $svgdata) = SVG_showLog("unused");
#Debug "MIME type= $mimetype"; #Debug "MIME type= $mimetype";
#Debug "SVG= $svgdata"; #Debug "SVG= $svgdata";
eval { my ($w, $h) = split(",", AttrVal($plotName[0],"plotsize","800,160"));
require Image::LibRSVG; $svgdata =~ s/<\/svg>/<polyline opacity="0" points="0,0 $w,$h"\/><\/svg>/;
$rsvg = new Image::LibRSVG();
$rsvg->loadImageFromString($svgdata);
$pngImg = $rsvg->getImageBitmap();
};
Log3 $FW_wname, 1,
"plotAsPng(): Cannot create plot as png image for \"" .
join(" ", @plotName) . "\": $@"
if($@ or !defined($pngImg) or ($pngImg eq ""));
return $pngImg if $pngImg; eval {
return; require Image::LibRSVG;
$rsvg = new Image::LibRSVG();
$rsvg->loadImageFromString($svgdata);
$pngImg = $rsvg->getImageBitmap();
};
Log3 $FW_wname, 1,
"plotAsPng(): Cannot create plot as png image for \"" .
join(" ", @plotName) . "\": $@"
if($@ or !defined($pngImg) or ($pngImg eq ""));
return $pngImg if $pngImg;
return;
} }
################## ##################