Autor |
|
|
Laden eines Bildes aus dem Netz in eine Bildvariable |
|
|
319 Beiträge - Gehört zum Inventar
|
 |
|
Hallo,
das Laden und Ausgeben eines Bildes gelingt mir bislang nur über den Weg, das Bild aus dem Netz zwischenzuspeichern und dann zu laden.
Deshalb die Frage: Wie kann ich ein Bild aus dem Netz direkt in eine Bildvariable laden?
Bislang nehme ich
Internet (ID '1', URL 'http://192.168.1.101/snapshot.cgi?user=Tor&pwd=**********&file=/Torkamera.jpg', Datei holen, Zieldatei '[cX.TempPfad]Torkamera.jpg')
Der Versuch den Variableninhalt aus Internet in eine Bildvariable zu speichern misslingt mir...
Vielleicht hat ja jemand eine Idee, die mir weiter hilft?
Ciao,
Joachim
|
Beitrag vom 16.12.2012 - 14:15 |
|
|
|
Admin/click.EXE Team 942 Beiträge - click.EXE - Fastguru
|
 |
|
Hallo Joachim,
hast du als Variable auch eine $-Variable genommen? Also z.B. [Bildpuffer$]
Ansonsten könnte es rein theoretisch über einen kleinen Umweg gehen.
Mit dem Bearbeite-Befehl die Variable in Base64 codieren und dann mit %AusBase64(ID)% das Bild erzeugen
|
Beitrag vom 16.12.2012 - 19:43 |
|
|
|
319 Beiträge - Gehört zum Inventar
|
 |
|
Hallo Thomas,
danke für die schnelle Realion...
Ja, ich verwende eine $-Variable und die Idee mit Base64 hatte ich auch schon...
Nur, ich bekomme es nicht hin, ohne Umweg als Datei.
Alle Versionen mit Datei klappen.
Variabel Speicher und dann in Bild einlesen um sie dann auszugeben
Variable speichern und sie direkt ausgeben.
Ich denke ich sehe den Wald vor Bäumen nicht oder aber es ist grundsätzlich nur möglich, die Bildvariable aus einer Datei zu füttern...
Habe gehofft, dass die Frage schon jemand geklart hat.
Bei der Base64 Umwandlung ist mir auch die Syntax nicht ganz klar.
Ciao,
Joachim
Internet in [camtemp$]: (URL 'http://cxweb.mountymax.de/clickexe/header.gif', Datei holen)
( Datei schreiben '[cX.TempPfad]torkamera.jpg' den Text '[camtemp$]' (erst löschen)
( Setze in [ergebnis]: '[Bild(1).Laden([cX.TempPfad]torkamera.jpg)]'
Bearbeite '[camtemp$]' in [camtemp2$] (in Base64)
Setze in [ergebnis]: '[Bild(1).Laden([camtemp2$)]'
( Setze in [ergebnis]: '[Bild(1).Laden([camtemp$)]'
( Zeichne auf Fenster 'Monitor': (Füllen, Bild: '[cX.TempPfad]torkamera.jpg', Transparenz 0%)
Zeichne auf Fenster 'Monitor': (Füllen, Bild: '%AusBase64(1)%', Transparenz 0%)
Hierfür benötigte Erweiterungen: Internet, Premium-Lizenz, Pro-Lizenz
| Erstellt mit cX2Web - cX4 WebExport V3 (8 Skriptzeilen, cX Premium 4.0.6.3)
|
Beitrag vom 16.12.2012 - 20:45 |
|
|
|
click.EXE Team 278 Beiträge - nicht heilbarer cX-Junkie ;o)
|
 |
|
Warum so Kompliziert 
Internet in [camtemp$]: (URL 'http://cxweb.mountymax.de/clickexe/header.gif', Binärdaten, Datei holen)
Anzeigefenster 'Fenstertitel' (ID='Monitor')
Datei schreiben '[cX.TempPfad]torkamera.jpg' den Text '[camtemp$]' (erst löschen)
Setze in [ergebnis]: '[Bild(1).Laden([cX.TempPfad]torkamera.jpg)]'
Datei ändern '[cX.TempPfad]torkamera.jpg' (Löschen)
Zeichne auf Fenster 'Monitor': (Füllen, Bild: '%Bild(1)%', Transparenz 0%)
Warte endlos...
Hierfür benötigte Erweiterungen: Internet, Premium-Lizenz, Pro-Lizenz
| Erstellt mit cX2Web - cX4 WebExport (8 Skriptzeilen, cX 4.0.7.0 Premium)
|
Beitrag vom 16.12.2012 - 22:32 |
|
|
|
Admin/click.EXE Team 942 Beiträge - click.EXE - Fastguru
|
 |
|
Ich gebe zu, dass ich ziemlich lange probiert habe, da es mich auch interessierte wie es ohne zwischenspeichern geht, am Ende ist dann das herausgekommen:
Internet in [bild$]: (URL 'http://cxweb.mountymax.de/clickexe/header.gif', Binärdaten, Datei holen)
Bearbeite '[bild$]' in [Ergebnis] (in Base64)
Anzeigefenster 'Fenstertitel' (ID='Monitor')
Browser-Element ID='b1', (Zielfenster='Monitor', HTML-Quelltext='<img src="data:image;base64,[Ergebnis]">')
Warte endlos...
Hierfür benötigte Erweiterungen: Internet, Browser-Element
| Erstellt mit cX2Web - cX4 WebExport (6 Skriptzeilen, cX 4.0.7.0 Premium)
Allerdings weiß ich nicht, ob es der IE Zwischenspeichert.
Das mit dem Base64 ist etwas merkwürdig, ich habe Tests mit ein und der selben Datei durchgeführt, aber Bearbeite->Base64/Code.Base64 und die Bild.Base64 Funktionen scheinen völlig unterschiedlich zu arbeiten, bei beiden kommen völlig andere Ergebnisse heraus. Wobei erstere die richtigen Daten liefert, sieht nach einem Bug aus.
Der Post wurde 5 mal editiert, zuletzt von MountyMAX am 17.12.2012 - 05:35.
|
Beitrag vom 17.12.2012 - 04:23 |
|
|
|
319 Beiträge - Gehört zum Inventar
|
 |
|
Hallo,
herzlichen Dank für Eure Hilfe,
@Thomas: Schade, dass Du meine Erfahrungen bestätigst ;-)
Der Ansatz mit dem Browserelement ist interessant. Damit versuche ich es mal.
@nobby, der Code den ich gepostet habe betrifft nur meine Versuche. Bislang war es ein Zweizeiler. Ich fand nur das ewige Schreiben auf die Platte für jedes Bild unschön und wollte das ändern. Handelt sich nämlich um eine Webcam von der ich wenn das Fenster im Fordergrund ist 4 Bilder pro Sekunde holen ansonsten alle 15 Sekunden ein Bild. Das Programm schreibt also solange es läuft ständig auf die Platte...
43 Internet (URL 'http://cxweb.mountymax.de/clickexe/header.gif', Datei holen, Zieldatei '[cX.TempPfad]Torkamera.jpg')
51 Zeichne auf Fenster 'Monitor': (X=1, Y=9, B=85, H=64, Füllen, Bild: '[cX.TempPfad]torkamera.jpg', Transparenz 0%)
Hierfür benötigte Erweiterungen: Internet, Premium-Lizenz, Pro-Lizenz
| Erstellt mit cX2Web - cX4 WebExport V3 (2 Skriptzeilen, cX Premium 4.0.6.3)
Ich werde Berichten.
DANKESCHÖN! 
Ciao,
Joachim
|
Beitrag vom 17.12.2012 - 09:11 |
|
|
|
319 Beiträge - Gehört zum Inventar
|
 |
|
Hallo,
Thomas, Deine Idee klappt perfekt! 
Ganz herzlichen Dank!
Cx-forum, da wird Dir geholfen ;-)
Ciao,
Joachim
1 Anzeigefenster 'SokoIur Kamera Tor' (ID='Monitor', B=84, H=71, X=[Fenster_x]mm, Y=[Fenster_y]mm, Icon aus 'AugeJs2.ico', frei verschieben, Eckenradius 4)
2 Browser-Element ID='Bild', (Zielfenster='Monitor', X='-1', Y='5', Breite='-1', Höhe='-1')
3 Setze in [Browser(Bild).ScrollbalkenSichtbar]: '0'
4 :: loop
5 Internet in [bild$]: (URL 'http://cxweb.mountymax.de/clickexe/header.gif', Binärdaten, Datei holen)
6 Bearbeite '[bild$]' in [Ergebnis] (in Base64)
7 Browser-Element ID='Bild', (Zielfenster='Monitor', X='0', Y='9', Breite='87', Höhe='71', HTML-Quelltext='<p style="margin-left:-10px" style="margin-top:-15px"><img src="data:image;base64,[Ergebnis] " width="324">')
8 Warte (Pause für 1 Sekunde)
9 Sprung nach 'loop'
Hierfür benötigte Erweiterungen: Browser-Element, Internet
| Erstellt mit cX2Web - cX4 WebExport V3 (9 Skriptzeilen, cX Premium 4.0.6.3)
Der Post wurde 3 mal editiert, zuletzt von Soko am 17.12.2012 - 13:14.
|
Beitrag vom 17.12.2012 - 10:43 |
|
|
Bild holen und im Fenster verschieben--- ständig |
|
|
216 Beiträge - click.EXE Süchtiger
|
|
|
Habe meine Frage verschoben... nach Click.EXE - für Fortgeschrittene
Der Post wurde 1 mal editiert, zuletzt von PROEXE am 17.12.2012 - 21:02.
|
Beitrag vom 17.12.2012 - 19:39 |
|