Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Text auf Bild

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • M057W4N73d
    hat ein Thema erstellt [Erledigt] Text auf Bild.

    [Erledigt] Text auf Bild

    Hallo,

    Kann mir einer helfen, wie ich folgende kriterien unter einen hut bekomme?
    Ich habe eine Webcam, welche ich als Wettercam benutze und auf meiner Homepage einbinden möchte. Ich hatte alles schon einmal gemacht, nur habe ich mich jetz entschieden alles ohne Server zu machen und auf PHP-Ebene zu probieren.

    Ich habe also den Direkten Link auf das jeweils aktuelle Bild der Kamera als http://urlort/bild.jpg.

    Nun möchte ich, dass der User auf meiner Homepage auf http://url/livebild.jpg zugreifen kann, ohne die ursprüngliche url zu wissen und dieses Bild mit einem Wasserzeichen/Copyright versehen.

    Gibt es eine möglichkeit diese funktionen unter einen Hut zu bekommen, ohne dass dabei die .php-datei aufgerufen wird, sondern die php-datei jedesmal ausgeführt wird, wenn das bild /livebild.jpg geladen wird?

    MFG

    M057W4N73d

  • Gast-Avatar
    Ein Gast antwortete
    Ok, jetz hab ich den fehler gefunden.

    Mein hoster hat alle ports gesperrt bis auf port 80.

    Ich möchte aber meine Webcam nicht auf Port 80 haben, da ich einen Webserver habe.

    Gibt es denn eine möglichkeit durch port 80 zu kommen und trotzdem auf ein anderen Port zugreifen?

    MFG
    M057W4N73d

    Einen Kommentar schreiben:


  • robo47
    antwortet
    z.b. mit file_get_contents() versuchen.
    Oder einer HTTP-Klasse wie im verlinkten thread (dort sind auch beispiele verlinkt) nutzen um die datei runterzuladen

    Das sollte doch für jemanden der fortgeschritten ist kein problem sein ?

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    wie genau soll ich denn die datei öffnen?

    kannst du mir evtl. ein paar code-schnipsel zeigen?

    Gruß
    M057W4N73d

    Einen Kommentar schreiben:


  • robo47
    antwortet
    Ist es vielleicht ne firewall client oder server-seitig oder ähnliches im Spiel die port 8080 zumacht oder blockt ?

    Ansonsten vielleicht einfach mal was schon gesagt wurde versuchen, anstatt die datei direkt mittels createimagefromjpeg über http zu öffnen, via php runterladen und dann öffnen.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    So, jetzt weiß ich es sicher, dass es an der Portangabe liegt.

    Hab jetz meine Kamera auf port 80 gelegt, hab dann die Portangabe weggelassen und es geht.

    Ich brauche aber den Port 80 für andere anwendungen.

    Hier mein aktuelles Skript:
    PHP-Code:
    <?php
    Header
    ("Content-Type: image/png");            //Header
    $width 640;                        //Länge
    $height 480;                        //Höhe
    $img ImageCreateFromJPEG('http://xx.xx/Jpeg/CamImg.jpg');            //Ursprungsbild
    $font 3;                        //Schriftart
    $copyright 'Clemens-Volpp.de';            //Schriftzug für Copyright
    $überschrift 'Oberohrn, Akatienstraße';        //Schriftzug für Überschrift
    $color ImageColorAllocate($img255255255);    //Farbe für Schrift
    $bgcolor ImageColorAllocate($img000);        //Farbe für Hintergrund


    $datum date("d.m.Y - H:i");                //Datum ausgeben
    $font_width ImageFontWidth($font);            //Schriftlänge berechnen
    $font_height ImageFontHeight($font);            //Schrfithöhe berechnen

    $ldatum $font_width*strlen($datum);            //Länge des Datums berechnen
    $lcopyright $font_width*strlen($copyright);        //Länge des Copyrights berechnen
    $lüberschrift $font_width*strlen($überschrift);    //Länge der Überschrift berechnen
    $xüberschrift $width/2-$lüberschrift/2;        //Mitte der Überschrift berechnen

    ImageFilledRectangle($img0$height-$font_height-2$ldatum+4$height$bgcolor);            //Hintergrund für Datum erstellen
    ImageFilledRectangle($img$width-6-$lcopyright$height-$font_height-2$width$height$bgcolor);    //Hintergrund für Copyright erstellen
    ImageFilledRectangle($img$xüberschrift-2$font_height+2$xüberschrift+$lüberschrift+20$bgcolor);//Hintergrund für Überschrift erstellen

    ImageString($img$font$width-$lcopyright-2$height-$font_height-2$copyright$color);        //Schriftzug Copyright erstellen
    ImageString($img$font2$height-$font_height-2$datum$color);                    //Schriftzug Datum erstellen
    ImageString($img$font$xüberschrift2$überschrift$color);                    //Schriftzug Überschrift erstellen


    ImagePNG($img);                        //Bild anzeigen
    ImageDestroy($img)                    //Speicher löschen
    ?>
    Zu meiner Frage: Weiß jemand wie ich Das Bild über Port 8080 abrufen kann?

    Gruß
    M057W4N73d

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Ich denke nicht, dass dies nötig ist, da die .jpg-datei von der Kamera eine ganz normale .jpg-datei und kein mjpg oder stream ist.

    Die Kamera hat eine Oberfläche mit der das Bild als stream dargestellt wird, geht man aber auf den Direktlink über .jpg wird ein jeweils aktueller Snapshot von der Kamera ausgegeben.

    Gruß
    M057W4N73d

    Einen Kommentar schreiben:


  • robo47
    antwortet
    Zitat von M057W4N73d Beitrag anzeigen
    Ich glaube nicht, dass dies das Problem ist, In meinen Augen liegt das Problem darin, dass die Funktion ImageCreateFromJPEG() nicht mit der Portangabe :8080 klarkommt.

    Gruß
    M057W4N73d
    dann weise das doch einfach nach ? Glauben bringt dich nicht weiter

    Laut manual sollte es mit allen fopen-fähigen streams arbeiten können genauso wie die meisten anderen datei-funktionen.
    und http ist ein fopen-fähiger stream wenn aktiviert.
    -> PHP: imagecreatefromjpeg - Manual
    -> PHP: List of Supported Protocols/Wrappers - Manual
    -> PHP: Runtime Configuration - Manual

    Und da ich regelmäßig über die stream-funktionen auch schon urls mit port-angaben geöffnet hab, würde ich ein Problem mit der port-angabe ausschließen.

    Versuch doch einfach mal die datei mit file_get_contents, einer http-klasse ( HTTP-Requests with php - An overview of extensions and classes ) or händisch mit fopen/fget/fclose runterzuladen.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Ich glaube nicht, dass dies das Problem ist, In meinen Augen liegt das Problem darin, dass die Funktion ImageCreateFromJPEG() nicht mit der Portangabe :8080 klarkommt.

    Gruß
    M057W4N73d

    Einen Kommentar schreiben:


  • robo47
    antwortet
    Versuch das bild mal mit php normal runterzuladen file_get_contents oder ähnliches, klappt das ?

    Ist das direkt die ausgabe-url der webcam bzw. einer software die webcam-streams via http liefert ?
    Weil sowas dann kein normales jpeg als bild sondern ein jpeg-stream ist:
    Motion JPEG – Wikipedia

    Da kannst du laden bist du schwarz wirst, weil immer was neues kommt und irgendwann dann ein timeout. Abhängig von dem Format kann es durchaus sein dass die gdlib von php damit auch nichts anfangen kann, kannst ja mal versuchen:
    Auf unterster ebene mit fsockopen verbindung aufbauen, passende http-requests senden, in einer schleife einlesen und dir so mal ein stück mitschneiden und das mit nem hex-editor oder ähnlichem anschauen um rauszufinden wie man bild-anfang und bild-ende erkennt
    Dann kannst du das umbauen so dass dein script ein einzelbild extrahiert, danach das lesen abbricht und dann vom eingelesenen deine image-resource erstellen.

    Bin mir allerdings nicht ganz sicher ob das so klappt.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    so, dann kommt folgende meldung:

    Warning: imagecreatefromjpeg(http://xx.xx:8080/Jpeg/CamImg.jpg) [function.imagecreatefromjpeg]: failed to open stream: Connection timed out in /customers/clemens-volpp.de/clemens-volpp.de/httpd.www/webcam/oberohrn/livepic.php on line 6

    Gruß
    M057W4N73d

    Einen Kommentar schreiben:


  • ChrisB
    antwortet
    Zitat von M057W4N73d Beitrag anzeigen
    Wenn ich auf ein Bild mit Port verweise, kommt im Firefox:"Das Bild kann nicht angezeigt werden, weil es Fehler enthält"
    Diese Meldung wird höchstvermutlich dadurch ausgelöst, dass PHP-Fehlermeldungen in den Bilddaten ausgegeben werden - also schau nach, welche!

    (Bspw. mittels Net-Panel im Firebug. Oder kommentiere den header-Aufruf aus, und rufe das Script über Eingabe der Adresse in der Adressleiste direkt auf.)

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Nein, das Bild ist das aktuelle Bild meiner Webcam und liegt im Webverzeichnis der Cam. Die Php-Datei liegt auf dem Dateisystem meiner Homepage.

    Daher muss ich den Port angeben.

    Wenn ich auf ein Bild mit Port verweise, kommt im Firefox:"Das Bild kann nicht angezeigt werden, weil es Fehler enthält"

    MFG
    M057W4N73d

    Einen Kommentar schreiben:


  • hpf
    antwortet
    Zitat von M057W4N73d Beitrag anzeigen
    Wenn ich den URL auf ein Bild ohne Portangabe setze, funktioniert alles.
    Und was passiert mit dem Port?

    Aber abgesehen davon, liegt das Bild nicht auf dem Webserver? Dann kannst du es über das Dateisystem einbinden und musst nicht über den url_wrapper gehen.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Hallo,

    Danke für den Tipp mit Mod_Rewrite, hat mir sehr geholfen.
    Habe jetzt noch ein Problem:

    Ich kann das bild nicht von meiner Kamera direkt verlinken, da ich an die Adresse den Port 8080 anhängen muss.

    Folgenden Code habe ich jetzt:

    PHP-Code:
    <?php
    Header
    ("Content-Type: image/png");
    $width 640;
    $height 480;
    $img ImageCreateFromJPEG('http://xx.xx:8080/Jpeg/CamImg.jpg');
    $copyright 'Clemens-Volpp.de';
    $datum date("d.m.Y - H:i");
    $color ImageColorAllocate($img255255255);

    ImageString($img3525465$copyright$color);
    ImageString($img32465$datum$color);


    ImagePNG($img);
    ImageDestroy($img)
    ?>
    Wenn ich den URL auf ein Bild ohne Portangabe setze, funktioniert alles.

    MFG
    M057W4N73d

    Einen Kommentar schreiben:

Lädt...
X