Bilder breite und höhe ausgeben !

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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
    Last edited by beebob; 14-08-2002, 19:01.

    Comment


    • #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
      Attached Files

      Comment


      • #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

        Comment


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

          PHP Code:
          $beebob $beebobIstSooooooooooooBreit

          Comment

          Working...
          X