Hallo,
ich nutze schon seit einigen Jahren den RSS Feed um diverse Bildschirme zu erstellen.
Jetzt habe ich mir ein kleines Widget für mein Smartphone Programmiert das, das Bild (png) im Widget anzeigt. Wie bekomme ich es hin das ich einen Transparenten Hintergrund habe.? Oder geht dies technisch überhaupt nicht!
Mfg Tobias
Hallo Tobias,
geht es darum, eine Datei im PNG mit transparentem Hintergrund zu erstellen, oder wie diese über das erzeugte Bild angezeigt wird? Wenn das PNG einen transparenten Teil hat, müsste die im RSS-Modul verwendete Bibliothek das eigentlich so anzeigen. Was ist das Problem?
Viele Grüße
Boris
Ich habe die Datei/Bild mit angehängt. Also ich hätte gern das alles was im Hintergrund jetzt weiß ist alles Transparent ist. Damit ich das erzeugte Bild in meinen Widget verwenden kann und das Hintergrundbild meine Smartphones durchleuchtet.
Ich hoffe ich habe es einigermaßen gut ausgedrückt!
Ach so, es geht um das finale Bild, das RSS erzeugt.
Es müsste mit
attr DeinRSS bgcolor FFFFFF7F
gehen.
Zitat von: Dr. Boris Neubert am 04 Januar 2020, 13:10:57
Ach so, es geht um das finale Bild, das RSS erzeugt.
Es müsste mit
attr DeinRSS bgcolor FFFFFF7F
gehen.
Nein leider nicht, das habe ich auch schon getestet.
hier mal ein List von dem Device
Internals:
.embed
CFGFN
DEF png 192.168.0.185 /mnt/usb/fhem/rss/rss_320x240_app_aussen.layout
FUUID 5e0a4322-f33f-66a9-3a1d-996a1c0f90a6ff99
LAYOUTFILE /mnt/usb/fhem/rss/rss_320x240_app_aussen.layout
NAME APP_Temp_Aussen_RSS_320x240
NOTIFYDEV global
NR 2078
NTFY_ORDER 50-APP_Temp_Aussen_RSS_320x240
STATE Sat Jan 4 13:15:44 2020
TYPE RSS
fhem:
bgnr 0
counter 409
filename /mnt/usb/fhem/rss/rss_320x240_app_aussen.layout
hostname 192.168.0.185
layout #Schriftart festlegen
font /usr/share/fonts/truetype/msttcorefonts/arial.ttf
#font /usr/share/fonts/truetype/msttcorefonts/arialbd.ttf
rgb "000000"
# waagerechte Linien
line 0 25 320 25
#line 0 133 320 133
#line 0 640 720 640
#line 0 940 720 940
# senkrechte Linien
#line 160 25 160 240
# wir bauen uns eine Kopfzeile
# Schriftgroesse festlegen
pt 14
#date 10 30
time 5 20
rgb "000000"
text 110 20 "Temperatur Aussen"
pt 50
rgb "666666"
text 25 80 "Terrasse"
pt 55
rgb "000000"
text 80 150 {(ReadingsVal("MA_Terrasse","temperature",""))."�C" }
pt 55
rgb "666666"
text 80 220 {(ReadingsVal("MA_Terrasse","humidity",""))." %" }
#Plot einbinden
#img 0 100 0.40 png data { plotAsPng("SVG_FileLog_MA_Terrasse_1") }
style png
t 1578140144.7895
useTextAlign 1
useTextWrap 1
Attributes:
bgcolor FFFFFF7F
room RSS
size 320x240
Hmm. Wenn Du bgcolor 000000 setzt, wird dann der Hintergrund schwarz?
Zitat von: Dr. Boris Neubert am 04 Januar 2020, 14:29:01
Hmm. Wenn Du bgcolor 000000 setzt, wird dann der Hintergrund schwarz?
Ja da wird es Schwarz.
Kann denn das Widget auf dem Smartphone überhaupt mit Transparenz umgehen? Hast Du mal ein Bild mit Transparenz selbst erstellt und das versucht, anzuzeigen?
Ja das geht.
Hallo,
das Problem besteht in 02_RSS.pm in der Art, wie das Bild neu als True Color Image erzeugt wird. Ich habe jetzt anderthalb Stunden herumprobiert, bis ich eine funktionierende Aufrufsequenz gefunden habe.
Kannst Du bitte mal die beigefügte Version testen?
Viele Grüße
Boris
Edit: Anhang entfernt
Zitat von: Dr. Boris Neubert am 05 Januar 2020, 09:56:42
Hallo,
das Problem besteht in 02_RSS.pm in der Art, wie das Bild neu als True Color Image erzeugt wird. Ich habe jetzt anderthalb Stunden herumprobiert, bis ich eine funktionierende Aufrufsequenz gefunden habe.
Kannst Du bitte mal die beigefügte Version testen?
Viele Grüße
Boris
Hallo, danke vorab ich werde mal eben das Testen
mfg Tobias
So ich habe die neue 02_RSS.pm in meinen System eingepflegt und mit Reload die Datei geladen.
Desweiteren habe ich bgcolor FFFFFF7F gesetzt. das ergebnis bleibt aber das gleiche.....
mfg Tobias
Okay, ich sehe, was passiert. Nur die erste Auslieferung ist transparent. Ich gehe der Sache nach.
Hier zum Abgleich meine Definition:
define FrameRSS RSS png HOSTNAME layout-transparent
attr FrameRSS bgcolor 0000007f
attr FrameRSS refresh 5
font /usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf
rgb c0c0c0 # HTML color notation, RGB
pt 18
date 25 470
pt 48 # font size in points
time 20 525 # time @ (0.1*width, 0.9*height)
rgb "ff0000"
pt 18
text 0.1 0.1 { $defs{"FrameRSS"}{fhem}{counter} }
textboxf 0.5 0.5 100 "80ff0040" "Blubber"
Super Danke!
Schönen Sonntag noch!
mfg Tobias
Hallo Tobias,
die GD-Library hat das Problem, dass das zweite und weitere Bilder keine Transparenz annehmen. Ich habe nun einen komischen Code eingebaut, der als Workaround aber bei mir funktioniert. Bitte finde anbei die aktualisierte Version mit der Bitte um Test.
Viele Grüße
Boris
Edit: Anhang entfernt
Zitat von: Dr. Boris Neubert am 06 Januar 2020, 11:29:24
Hallo Tobias,
die GD-Library hat das Problem, dass das zweite und weitere Bilder keine Transparenz annehmen. Ich habe nun einen komischen Code eingebaut, der als Workaround aber bei mir funktioniert. Bitte finde anbei die aktualisierte Version mit der Bitte um Test.
Viele Grüße
Boris
Hallo,
wenn ich heute Abend wieder zuhause bin werde ich es testen und berichten!
mfg Tobias
Zitat von: Dr. Boris Neubert am 06 Januar 2020, 11:29:24
Hallo Tobias,
die GD-Library hat das Problem, dass das zweite und weitere Bilder keine Transparenz annehmen. Ich habe nun einen komischen Code eingebaut, der als Workaround aber bei mir funktioniert. Bitte finde anbei die aktualisierte Version mit der Bitte um Test.
Viele Grüße
Boris
So ich bin jetzt dazu gekommen zu Testen, leider stürzt mein FHEM direkt nach dem Reload des Modules ab. Habe auch einen Kompletten Neustart probiert, aber das gleiche. FHEM Startet dann nicht mehr.!
MFG Tobias
Meldung im Log:
2020.01.06 16:31:34 1: PERL WARNING: Subroutine plotFromUrl redefined at ./FHEM/02_RSS.pm line 1093.
Can't call method "jpeg" on an undefined value at ./FHEM/02_RSS.pm line 1045.
2020.01.06 16:32:28 1: SipCall2[24114], can´t find my parent 24068 in process list !
Died at ./FHEM/96_SIP.pm line 386.
Hallo,
hatte noch Debugging-Reste übersehen. Sorry.
Allerdings führt bei mir die letzte Version zu Falschfarben-Bildern. Ich habe jetzt mal auf Palette-basierte Bilder umgestellt. Damit bekomme ich sowohl die Transparenz hin als auch sehen meine Bilder im Fotorahmen immer noch adrett aus.
Anbei die neue Version mit der Bitte um Test.
Viele Grüße
Boris
Zitat von: Dr. Boris Neubert am 06 Januar 2020, 17:48:37
Hallo,
hatte noch Debugging-Reste übersehen. Sorry.
Allerdings führt bei mir die letzte Version zu Falschfarben-Bildern. Ich habe jetzt mal auf Palette-basierte Bilder umgestellt. Damit bekomme ich sowohl die Transparenz hin als auch sehen meine Bilder im Fotorahmen immer noch adrett aus.
Anbei die neue Version mit der Bitte um Test.
Viele Grüße
Boris
So ich habe die neue Version erneut getestet, aber ich meine das Bild ist immer noch nicht Transparent (siehe Anhang) oder ich habe einen Denkfehler!
Meine bgcolor 0000007f!
Ich habe mein Bild angehängt!
mfg Tobias
Hallo Tobias,
ja, da ist keine Transparenz. Jetzt bin ich ratlos.
Wir haben dasselbe Modul, dasselbe Layout und dieselbe Definition vom RSS-Device. Oder? Kannst Du bitte mal eine Definition posten (list DeinRSSDevice)?
Viele Grüße
Boris
Noch eine Frage bitte: welches System?
Zitat von: Dr. Boris Neubert am 06 Januar 2020, 19:59:16
Noch eine Frage bitte: welches System?
hier ein list
Internals:
.embed
DEF png 192.168.0.185 /mnt/usb/fhem/rss/rss_320x240_app_aussen.layout
FUUID 5e0a4322-f33f-66a9-3a1d-996a1c0f90a6ff99
LAYOUTFILE /mnt/usb/fhem/rss/rss_320x240_app_aussen.layout
NAME APP_Temp_Aussen_RSS_320x240
NOTIFYDEV global
NR 843
NTFY_ORDER 50-APP_Temp_Aussen_RSS_320x240
TYPE RSS
READINGS:
fhem:
bgnr 1
counter 37
filename /mnt/usb/fhem/rss/rss_320x240_app_aussen.layout
hostname 192.168.0.185
layout font /usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf
rgb c0c0c0 # HTML color notation, RGB
pt 18
date 25 470
pt 48 # font size in points
time 20 525 # time @ (0.1*width, 0.9*height)
rgb "ff0000"
pt 18
text 0.1 0.1 { $defs{"APP_Temp_Aussen_RSS_320x240"}{fhem}{counter} }
textboxf 0.5 0.5 100 "80ff0040" "Blubber"
style png
t 1578337251.88723
useTextAlign 1
useTextWrap 1
Attributes:
bgcolor 0000007f
room RSS
size 320x240
System ist eine Raspberry 3 mit Debian Jessi
Was für ein Computer und was für ein Betriebssystem?
Zitat von: Dr. Boris Neubert am 06 Januar 2020, 20:22:08
Was für ein Computer und was für ein Betriebssystem?
System ist eine Raspberry 3 mit Debian Jessi
Hallo,
so ich habe es nochmal auf meinen anderen Pi mit FHEM probiert, es besteht aber weiterhin das gleiche Problem.
Was könnte ich noch testen?
Habe auch alle relevanten Pakete in Debian Installiert.
libgd-graph-perl
libgd-text-perl
libimage-librsvg-perl
libxml-simple-perl
diese sind auch aktuell.
mfg Tobias
Hallo, will es selbst auf Raspberry testen, bin aber noch nicht dazugekommen. Viele Grüße, Boris
Zitat von: Dr. Boris Neubert am 08 Januar 2020, 18:26:39
Hallo, will es selbst auf Raspberry testen, bin aber noch nicht dazugekommen. Viele Grüße, Boris
Hallo, ist okey Danke.
MfG Tobias
Hallo,
ich habe jetzt noch eine Weile herumprobiert und es ist mir nicht gelungen, das gewünschte Ergebnis herzustellen. Das erste Bild nach Programmstart hat Transparenz. Bei den weiteren Bildern fehlt entweder die Transparenz oder die überblendeten Bilder zeigen Falschfarben.
Ich kann das Problem soweit einengen, dass es entweder mit den überblendeten Bildern (img im Layout) oder mit einem "Gedächtnis" der verwendeten GD-Library zu tun hat. Ich bin geneigt, dass für einen Bug in der Library zu halten.
Ende vom Lied: es geht nicht.
Das tut mir leid.
Viele Grüße
Boris
Zitat von: Dr. Boris Neubert am 18 Januar 2020, 17:32:03
Hallo,
ich habe jetzt noch eine Weile herumprobiert und es ist mir nicht gelungen, das gewünschte Ergebnis herzustellen. Das erste Bild nach Programmstart hat Transparenz. Bei den weiteren Bildern fehlt entweder die Transparenz oder die überblendeten Bilder zeigen Falschfarben.
Ich kann das Problem soweit einengen, dass es entweder mit den überblendeten Bildern (img im Layout) oder mit einem "Gedächtnis" der verwendeten GD-Library zu tun hat. Ich bin geneigt, dass für einen Bug in der Library zu halten.
Ende vom Lied: es geht nicht.
Das tut mir leid.
Viele Grüße
Boris
Hallo, ist doch nicht so schlimm.
Ich habe einen anderen Weg gefunden wie ich es am besten umsetzen kann.
Ich nutze das Linux Programm Imagemagick. Per Script lade ich mir das RSS png Bild, dieser wandelt mir den weißen Hintergrund in Transparent um und Speichert mir das Bild alle zb. 10 min. Vorteil dieser Methode ist außerdem wenn einige Handys das Bild nutzen wird nicht so viel Last auf dem FHEM System erzeugt, weil das Bild auf einen anderen Server oder so liegt. Das Bild kann ich dann in meiner App (auf meinen Homescreen als Widget nutzen).
Danke für die Bemühungen!
Mfg Tobias