Bilder breite und höhe ausgeben !

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

  • Bilder breite und höhe ausgeben !

    Hi,

    ich komme da nicht weiter, ich habe benutzerordner aus den ich die files auslesen will. Jeweils mit namen und mit größe. Wenn ich jetzt aber ein gif oder jpg oder png habe, dann soll die höhe und breite des bildes dabeistehen.

    $pfad = "../user/".strtolower($user);
    $obj = dir($pfad);
    while($file = $obj -> read())
    {
    if($file!="." && $file!=".." && $file!=" ")
    {
    echo $file ." - ".intval(filesize("$pfad/$file")/1024)." KB - ".filetype("$pfad/$file")."<br>";
    }
    }
    $obj -> close();

    wie bekomme ich jetzt raus ob es ein gif - jpg - png ist und dann die breite und höhe ?

    Danke
    Gruß
    Tago
    --------------------------------------
    Nachts is kälter als draußen !

  • #2
    garantiert die höhe aus den tiefsten tiefen von png und jpg

    PHP-Code:
        function getPngDimensions ($imgfn) {
            global 
    $imgw,$imgh;
            
    $imgfd fopen ($imgfn"r");
            
    $imgheader=fread ($imgfd8);
            if (
    $imgheader!=chr(211)."PNG\r\n".chr(32)."\n" && $imgheader!=chr(137)."PNG".chr(13).chr(10).chr(26).chr(10)) {
                
    fclose($imgfd);
                
    // return "not a PNG file: *".ord($imgheader[0])."*".ord($imgheader[1])."*".ord($imgheader[2])."*".ord($imgheader[3])."*".ord($imgheader[4])."*".ord($imgheader[5])."*".ord($imgheader[6])."*".ord($imgheader[7])."*");
                
    return "0";
            }
            
    $imgheader=fread ($imgfd8);
            
    $imgheader=unpack("Nw",fread ($imgfd4));
            
    $imgw=$imgheader["w"];
            
    $imgheader=unpack("Nh",fread ($imgfd4));
            
    $imgh=$imgheader["h"];
            
    fclose($imgfd);
            
    $dim["Width"]  = $imgw;
            
    $dim["Height"] = $imgh;
            return 
    $dim;
        }
        function 
    getJpegDimensions ($imgfn) {
            global 
    $imgw,$imgh;
            
    $M_SOF0  chr(192);
            
    $M_SOF15 chr(207);
            
    $M_SOI   chr(216);
            
    $M_EOI   chr(217);
            
    $M_SOS   chr(218);
            
    $M_COM   chr(254);
            
    $MARKER  chr(255);
            
    $imgfd fopen ($imgfn"r");
            
    $imgheader=fread ($imgfd2);
            if (
    $imgheader[0]!=$MARKER || $imgheader[1]!=$M_SOI) {
                
    fclose($imgfd);
                
    // die("not a JPG file");
                
    return "0";
            }
            while (
    1) {
                
    $db=0;
                
    $c1=fread ($imgfd1);
                while (
    $c1 != $MARKER) {
                    
    $db++;
                    
    $c1 fread ($imgfd1);
                }
                while (
    $c1 == $MARKER) {
                    
    $c1 fread ($imgfd1);
                }
                 
    // if ($db) {
                 //  echo "Warning: garbage data found in JPG file \"$imgfn\"\n";
                 //  }
                
    if ($c1 >= $M_SOF0 && $c1 <= $M_SOF15) {
                    
    // Do we have width and height?
                    
    $imgheader unpack("nl/Cd/nh/nw"fread ($imgfd7));
                    
    $l $imgheader["l"];
                    
    $d $imgheader["d"];
                    
    $imgh $imgheader["h"];
                    
    $imgw $imgheader["w"];
                    
    fclose($imgfd);
                    
    $dim["Width"]  = $imgw;
                    
    $dim["Height"] = $imgh;
                    return 
    $dim;
                }
                else if (
    $c1 == $M_SOS || $c1 == $M_EOI) {
                    
    // Did we reach header end?
                    
    fclose($imgfd);
                    
    // die("endoffile");
                    
    return "0";
                } else {
                
    // Otherwise, skip this variable
                
    $junk=unpack("ndummy"fread ($imgfd2));
                
    $l $this->ushort($junk["dummy"]) - 2;
                    if (
    $l 0) { 
                        
    fclose($imgfd);
                        
    // die("errormarker");
                        
    return "0";
                    }
                    
    fread ($imgfd$l);
                }
             }
        }


        function 
    ushort ($n) {
            if (
    $n 0) {$n += 65536;}
            return 
    $n;
        } 
    geben jeweils ein array ($array["Width"],$array["height"])

    garantiert aus biologischem anbau.
    für gifs würde ich getImageSize() nehmen. für jpeg und png die funktionen oben. weil bei getImageSize() ein bug drin ist.

    beebob
    Zuletzt geändert von beebob; 14.08.2002, 20:01.

    Kommentar


    • #3
      anbei noch ne kleine library, für die man eigentlich noch phplib und gd braucht. ist aber auch so ein kleiner fundus an funtionen. schau mal rein! (imagetyp kann man damit auch abfragen)

      beebob
      Angehängte Dateien

      Kommentar


      • #4
        Pfoa beebob mutig, mutig
        [small]weil's gerade so paßt *g*[/small]

        Also mit getimagesize funzt das so:
        PHP-Code:
        $BildWieHochUndBreitBistDu GetImageSize("xxx.jpg");
        $BildIstSoBreit $BildWieHochUndBreitBistDu[0];
        $BildIstSoHoch $BildWieHochUndBreitBistDu[1]; 
        http://www.php.net/manual/de/function.getimagesize.php

        Kommentar


        • #5
          naja, sooo mutig nun auch wieder net.
          ich sass mal 2 tage an diesem $§%§$%§ getImageSize

          PHP-Code:
          $beebob $beebobIstSooooooooooooBreit

          Kommentar

          Lädt...
          X