Ankündigung

Einklappen
Keine Ankündigung bisher.

Bilder aus Kartendienst überlagern

Einklappen

Neue Werbung 2019

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

  • botzer
    hat ein Thema erstellt Bilder aus Kartendienst überlagern.

    Bilder aus Kartendienst überlagern

    Hi,

    ich greife Bilder aus 2 verschiedenen Kartendiensten ab:

    1. Bild:
    http://geo4.service24.rlp.de/wms/dop...vnd.ogc.se_xml

    2. Bild
    http://www.gdi-rp-dienste2.rlp.de/cg...vnd.ogc.se_xml

    Diese Adresse übergebe ich in Variablen (da hier noch diverse Werte im Link angepasst werden) und lasse sie mir wieder anzeigen, ala:
    $link = "http://geo4.service24.rlp.de/wms/dop_basis.fcgi?....
    $link2 ="http://www.gdi-rp-dienste2.rlp.de/cgi-bin/mapserv?ma....
    und dann die Ausgabe per: echo "<img src=\"$link\">"; ...

    >> Das klappt auch alles

    Problem: wenn ich diese per imagecopy überlagere wird immer immer nur ein Buchstaben/Zahlensalat ausgegeben, so als ob ich das Bild per texteditor öffne....

    Überlagern:
    $image = ImageCreateFromString(file_get_contents($link));
    $image2 = ImageCreateFromString(file_get_contents($link2));
    #überlagern
    imagecopy($image, $image2, 0, 0, 0, 0, 600, 600);
    header('Content-Type: image/png');
    echo imagepng($image);

    Buchstabensalat:
    ‰PNG  IHDRXXþ¿XxÉPLTEÿÿÿþþþÿÇÇÿëëÿÏÏÿ××ÿ··ÿŸŸÿ‡‡ ÿhhÿPPÿ@@ÿ ÿÿÿDDÿËËÿûûÿßßÿÃÃÿ§§ÿttÿ``ÿHHÿ$$ÿ ÿããÿóóÿ——ÿ00ÿÿÿ,,ÿ\\ÿ||ÿ““ÿ££ÿÿ÷÷ÿ<<ÿÿ88ÿX Xÿppÿÿ¿¿ÿ««ÿÿllÿ»»ÿ

    Woran liegt das?
    Was kann ich tun??

    Danke!
    botzer

  • jspit
    antwortet
    Je nach Anwendung kann eine solche temporäre Bilddatei aber auch zu Problemen führen.

    Einen Kommentar schreiben:


  • botzer
    antwortet
    SUUPER!

    imagecopymerge($image, $image2, 0, 0, 0, 0, 600, 600, 50);

    imagepng($image,'testbild.png');
    echo
    '<img src="testbild.png"></img>';


    FUNTIONIERT !

    Einen Header brauch ich gar nicht !?

    DANKE

    Einen Kommentar schreiben:


  • jspit
    antwortet
    1. Wenn Buchstabensalat kommt, kommt nicht der richtige Header zur Wirkung. Entweder ist dieser nicht richtig gesetzt oder wird nicht akzeptiert, weil bereits zuvor irgendeine Ausgabe getätigt wurde.
    Suchbegriff: Headers already sent

    2. imagecopy kopiert das Bild oder Teile davon, du brauchst imagecopymerge. Ob imagecopymerge das von dir gewünschte Ergebnis erzeugt kann ich nicht beurteilen.

    3. Zum Testen bis zum fertigen Bild kannst du auch wie folgt vorgehen:
    - Kommentiere die Zeilen
    PHP-Code:
    header('Content-Type: image/png'); 
    und
    PHP-Code:
    imagepng($image); 
    vorübergehend aus und setze an die Stelle der letzten Zeile dies:
    PHP-Code:
    imagepng($image,'testbild.png');
    echo 
    '<img src="testbild.png"></img>'
    Dadurch werden sowohl Fehlermitteilungen sichtbar als auch dein Bild.
    Möglicherweise ist noch ein
    PHP-Code:
    ini_set('display_errors''On');
    error_reporting(-1);    //max. aufgedreht 
    am Scriptanfang einzufügen.

    Wenn dein Script fehlerfrei läuft, kannst du es dann auch ohne den Umweg über die Datei testbild.png ausgeben.

    LG jspit

    Einen Kommentar schreiben:


  • botzer
    antwortet
    Danke,

    aber leider bringt das nix:

    - den header hab ich drin. Steht direkt vor imagepng($image)
    Ist das ok so?

    - wenn ich aus echo imagepng($image); >> imagepng($image); Ändert sich absolut gar nichts

    hmmm...
    botzer

    Einen Kommentar schreiben:


  • Durin
    antwortet
    Das Problem liegt bei

    PHP-Code:
    echo imagepng(...); 
    Kein echo

    Einen Kommentar schreiben:


  • chorn
    antwortet
    Gibst du auch den richtigen Header mit?

    PHP-Code:
    header('content-type:image/png'); 

    Einen Kommentar schreiben:

Lädt...
X