Avatar billede gaflen89 Nybegynder
27. maj 2005 - 09:40 Der er 13 kommentarer og
1 løsning

Finde højde og bredde på billede

Hej eksperter!

Jeg skal finde højden og bredden på et billede på en anden server, end den jeg bruger. Lige nu står jeg med følgende kode:

//DIN CONFIG
$userFile = "http://$geturl3[URL]"; //$din_fil ændres til $raekke[filepath]) el. andet

//KEEP HANDS OF
function remotefilesize($file)
{
  // SETTINGS
  $max_file_size = "2000000"; // i bytes (har valgt 2 MB)

  // Open the file, but only read maximum size
  $fp = fopen($file, "r");
  $file_string = fread($fp, $max_file_size);
  fclose($fp);
$fileSize = strlen($file_string);
return $fileSize;
 
}

På forhånd tak.
Avatar billede Slettet bruger
27. maj 2005 - 09:44 #1
Og hvad er dit spørgsmål?
Avatar billede necro655 Nybegynder
27. maj 2005 - 09:50 #2
jeg gætter på hvordan læser man f.eks højden på et gif eller jpg billed ??? der er vel nogle header information i begyndelse af et billed..selv om det jo nok er forskelligt fra gif og jpg og dvs formater.
Avatar billede bojo Nybegynder
27. maj 2005 - 09:59 #3
http://dk2.php.net/manual/da/function.getimagesize.php

<?php
list($width, $height, $type, $attr) = getimagesize("img/flag.jpg");
echo "<img src=\"img/flag.jpg\" $attr alt=\"getimagesize() example\" />";
?>
Avatar billede Slettet bruger
27. maj 2005 - 10:11 #4
bojo> "på en anden server end den jeg bruger"


:)
Avatar billede coderdk Praktikant
27. maj 2005 - 10:17 #5
Du kan godt finde størrelsen i bytes på et billede, uden at downloade hele lortet ;)

el_barto, der er ikke noget i vejen (andet end serverindstillinger) for at give en URL i stedet for et filnavn ;)
Avatar billede gaflen89 Nybegynder
27. maj 2005 - 11:18 #6
Jeg har størrelsen på billedet. ;)
Jeg mangler bare højden og bredden.
Hvis det kan hjælpe, så er hele koden her:

//DIN CONFIG
$userFile = "http://$geturl3[URL]"; //$din_fil ændres til $raekke[filepath]) el. andet

//KEEP HANDS OF
function remotefilesize($file)
{
  // SETTINGS
  $max_file_size = "2000000"; // i bytes (har valgt 2 MB)

  // Open the file, but only read maximum size
  $fp = fopen($file, "r");
  $file_string = fread($fp, $max_file_size);
  fclose($fp);
$fileSize = strlen($file_string);
return $fileSize;
 
}
function sizeFormat ($dsize) { 
            if (strlen($dsize) <= 9 && strlen($dsize) >= 7) {                 
                $dsize = number_format($dsize / 1048576,2); 
                return "$dsize MB"; 
            } elseif (strlen($dsize) >= 10) { 
                $dsize = number_format($dsize / 1073741824,2); 
                return "$dsize GB"; 
            } elseif(strlen($dsize) <= 3) {
                      return "$dsize Bytes";
            } else { 
                $dsize = number_format($dsize / 1024,2); 
                return "$dsize KB"; 
            } 
}
Avatar billede gaflen89 Nybegynder
27. maj 2005 - 11:20 #7
Manglede lige:

echo sizeFormat(remotefilesize($userFile));
Avatar billede coderdk Praktikant
27. maj 2005 - 11:27 #8
For at finde dimensionerne, højde og bredde, kan du bruge getimagesize() - http://dk2.php.net/getimagesize gib blot en URL i stedet for et filnavn (kræver understøttelse af din ISP).

Og så gentager jeg lige mig selv: Du kan godt finde størrelsen på et billede uden at downloade det! F.eks. sådan her:

<?php

    function getSize( $url )
    {
        $result = false;
        if ( preg_match( '-^http://([^/:]+)(:(d+))?(/.*)?-i', $url, $m ) )
        {
            $host = $m[1];
            $port = ( !empty( $m[3] ) ? $m[3] : 80 );
            $path = ( !empty( $m[4] ) ? $m[4] : '/' );
            if ( $fp = @fsockopen( $host, $port, $ern, $ers, 3.0 ) )
            {
                fwrite( $fp, "HEAD $path HTTP/1.0\nHost: $host\nConnection: Close\n\n" );
                $response = fread( $fp, 512 );
                fclose( $fp );
                if ( preg_match( '!Content-Length: (\d+)!i', $response, $m ) )
                {
                    $result = $m[1];
                }
            }
        }
        return $result;
    }
   
    echo getSize( 'http://www.eksperten.dk/img/elogo.png' );
   
?>

Hvis den ikke kan finde størrelsen, returnerer getSize() false.
Avatar billede gaflen89 Nybegynder
27. maj 2005 - 16:39 #9
Tak for hjælpen allesammen.

Så er det jo tid til, der skal uddeles point, og da bojo kom med et rigtigt svar, får han halvdelen, fordi jeg også kunne bruge coderdks kode. Smid et svar begge!
Avatar billede gaflen89 Nybegynder
27. maj 2005 - 16:39 #10
Jeg ved det ikke er mange point, men jeg ved ikke hvor man tilføjer flere :'(
Avatar billede coderdk Praktikant
27. maj 2005 - 16:56 #11
Det ved jeg faktisk heller ikke :)
Avatar billede gaflen89 Nybegynder
27. maj 2005 - 16:59 #12
Mon man må oprette et nyt og så give bojo point der? Hvis jeg nu husker at skrive hvorfor han får dem :S
Avatar billede gaflen89 Nybegynder
27. maj 2005 - 17:01 #13
Det tror jeg, jeg gør. ;)
Avatar billede gaflen89 Nybegynder
27. maj 2005 - 17:11 #14
Bojo >> Du kan få dine point i dette spørgsmål:

http://www.eksperten.dk/spm/621248

Takker igen
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester