98_SVG.pm - plotAsPng() schneidet Beschriftung am unteren Rand ab

Begonnen von betateilchen, 05 Dezember 2013, 23:50:17

Vorheriges Thema - Nächstes Thema

betateilchen

Folgender Plot

(http://up.picr.de/16667261xs.jpg)

wird bei Abruf über plotAsPng() zur Verwendung in einem RSS

img .5 .5 1 png data { plotAsPng("wl_out_Balkon")}

am unteren Rand abgeschnitten:

(http://up.picr.de/16667262qh.jpg)

Unschön.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

ChrisD

Hallo,

Das erzeugte PNG ist zu klein, dies kommt wahrscheinlich durch ein Problem beim Rendern der Schriften. Bei einer plotsize von 800x160 (Standard) ist das PNG nur 798x154 Pixel groß. Um das Problem mit der Größe zu umgehen habe ich den Code in 98_svg.pm geändert, die Änderung behebt auch gleichzeitig das von dir beobachtete Verhalten. In der aktuellen Version 4315 von 98_svg.pm habe ich dazu nach der Zeile 1531($mimetype, $svgdata)   = SVG_showLog("unused");dies hinzugefügt:
my ($w, $h) = split(",", AttrVal($plotName[0],"plotsize","800,160"));
$svgdata =~ s/<\/svg>/<polyline opacity="0" points="0,0 $w,$h"\/><\/svg>/;

Dadurch wird eine nicht-sichtbare Linie von links oben nach rechts unten 'gezeichnet' was dazu führt dass das PNG genau plotsize groß ist (und der Text komplett sichtbar ist).

Grüße,

ChrisD

betateilchen

Hallo ChrisD,

danke, so ähnlich hatte ich das auch bei mir schon geändert. Deine Lösung sieht allerdings vom Perl-Code viel "schöner" aus als meine :)

Viele Grüße
Udo
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!