Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] EXIF-Daten ausgeben

Einklappen

Neue Werbung 2019

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

  • [Erledigt] EXIF-Daten ausgeben

    Hallo Gemeinde,

    nach erfolgloser Suche hier im Forum nach "exif daten ausgeben" oder "exifdaten ausgeben" versuche ich es mal direkt hier:

    Ich habe eine wunderschöne Funktion, mit der die Geotagging-Daten aus den Exif-Informationen eines Bildes ausgelesen und lesbar umgewandelt werden:

    PHP-Code:
    <?php

    function exifToNumber($value$format) {
        
    $spos strpos($value'/');
        if (
    $spos === false) {
            return 
    sprintf($format$value);
        } else {
            list(
    $base,$divider) = split("/"$value2);
            if (
    $divider == 0
                return 
    sprintf($format0);
            else
                return 
    sprintf($format, ($base $divider));
        }
    }

    function 
    exifToCoordinate($reference$coordinate) {
        if (
    $reference == 'S' || $reference == 'W')
            
    $prefix '-';
        else
            
    $prefix '';
            
        return 
    $prefix sprintf('%.6F'exifToNumber($coordinate[0], '%.6F') +
            (((
    exifToNumber($coordinate[1], '%.6F') * 60) +    
            (
    exifToNumber($coordinate[2], '%.6F'))) / 3600));
    }

    function 
    getCoordinates($filename) {
        if (
    extension_loaded('exif')) {
            
    $exif exif_read_data($filename'EXIF');
            
            if (isset(
    $exif['GPSLatitudeRef']) && isset($exif['GPSLatitude']) && 
                isset(
    $exif['GPSLongitudeRef']) && isset($exif['GPSLongitude'])) {
                return array (
                    
    exifToCoordinate($exif['GPSLatitudeRef'], $exif['GPSLatitude']), 
                    
    exifToCoordinate($exif['GPSLongitudeRef'], $exif['GPSLongitude'])
                );
            }
        }
    }

    function 
    coordinate2DMS($coordinate$pos$neg) {
        
    $sign $coordinate >= $pos $neg;
        
        
    $coordinate abs($coordinate);
        
    $degree intval($coordinate);
        
    $coordinate = ($coordinate $degree) * 60;
        
    $minute intval($coordinate);
        
    $second = ($coordinate $minute) * 60;
        
        return 
    sprintf("%s %d&#xB0; %02d&#x2032; %05.2f&#x2033;"$sign$degree$minute$second);
    }

    ?>
    Nun möchte ich mir diese Daten natürlich auch auf der Webseite ausgeben lassen, weiss aber nicht, wie ich diese Funktion einbinden bzw. aufrufen kann. Könnt ihr mir da weiterhelfen?
    Irgendwo muss ja auch der Pfad zum Bild referenziert werden. Den habe ich als Variable gespeichert in $path_big_image. Ich weiss aber jetzt nicht genau, wo die Variable eingesetzt werden muss. Vielleicht anstelle von $filename ?

    Danke für Eure Hilfe!

  • #2
    Die Funktion die du ansprechen müssest wäre:

    PHP-Code:
    function getCoordinates($filename
    Beispiel für einen Aufruf:
    PHP-Code:
    $result getCoordinates($path_big_image); 
    Die Variable $result beinhaltet dann deine gewünschten Daten in Form eines Arrays.

    Kommentar


    • #3
      Danke für deine schnelle Antwort.
      Nun weiss ich immer noch nicht, was genau ich am Quellcode verändern müsste, damit die Daten angezeigt werden.
      Ich habe die Funktionen ganz an den Anfang der Seite geschrieben.
      Dann folgen einige Datenbankabfragen, woraus die Seite "zusammengebastelt" wird und eine Ausgabe in Schleife, die alle Datensätze hübsch geordnet untereinander auflistet. Nun sollen aber neben jedem Bild auch die Koordinaten aus den EXIF-Daten erscheinen. Ich bin noch immer ein wenig ratlos, wie ich das bewerkstellige. Wo schreibe ich nun
      PHP-Code:
      $result getCoordinates($path_big_image); 
      hin und wie wird das gelieferte Array ordentlich angezeigt (also in Zahlen ausgegeben)?

      Kannst du mir vielleicht auch sagen, was die Zeile
      PHP-Code:
       return sprintf("%s %d&#xB0; %02d&#x2032; %05.2f&#x2033;"$sign$degree$minute$second
      am Ende bedeutet? Es scheint doch so, dass hier die Koordinaten dann formatiert werden in eine Anzeige wie: 0° 00′ 00.00″
      Und genau diese Anzeige möchte ich ja haben.....

      Kommentar


      • #4
        Ich habe es jetzt so gelöst:

        PHP-Code:
        <?php
                        
        if ($c getCoordinates($path_big_image)) {
                
        $latitude $c[0];
                
        $longitude $c[1];
                        echo 
        $longitude;?><br /> <?php echo $latitude
                    }
        ?>
        Diese Daten kann ich jetzt dynamisch in eine Google-Maps-Adresse einfügen.

        Kommentar

        Lädt...
        X