Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] wiekosc obrazka na zew. sererze
Forum PHP.pl > Forum > Przedszkole
-gość-
Chcialbym pobrac info o rozmiarze obrazka znajdujacego sie na zew. serwerze, czy moge to zrobic jakos inaczej niz po naglowku content-size? nie chce pobierac calego obraza...
bim2
getimagesize() nie wystarczy?
-gox-
Tak jak napisalem wyzej, nie chce pobierac calego obrazka...
bim2
No to fsockopen, odbierz headery i przerwij połączenie. :]
Gość
Hmm, a rozdzielczosc moze jakims cudem? moze z naglowka dalo by sie to odczytac, sciagajac tylko malutka czesc obrazka :/
Gość
Piszac naglowka mam na mysli naglowek pliku graficznego a nie naglowek http, poniewaz tam informacji o rozdzielczosci nie ma :/
bim2
Jeśli ktoś wysyłą rozdzielczość to możliwe, ale raczej nikt o zdorwych zmysłach tego nie robi. Nie pobierzesz tak rozdzielczości smile.gif

A z wielkością się udało wreście?
michalg
Powinno się dać odczytać rozdzielczość z nagłówka pliku graficznego, choć pewnie sam będziesz musiał to zrobić. Poszukaj na internecie informacji o nagłówkach formatów plików graficznych i spróbuj pobrać fragment pliku i dobrać się do informacji o rozdzielczości.
bim2
Nie odczytasz. Dla przykładu:
Cytat
http://blog.chwedziak.pl/files/sky.jpg

GET /files/sky.jpg HTTP/1.1
Host: blog.chwedziak.pl
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; pl; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: pl,en-us;q=0.7,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-2,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://blog.chwedziak.pl/
Cookie:

HTTP/1.1 200 OK
Date: Thu, 06 Nov 2008 19:42:16 GMT
Server: Apache
Vary: Host
Last-Modified: Tue, 28 Oct 2008 09:12:55 GMT
Etag: "10d4585-8ff7-45a4ca723d3c0"
Accept-Ranges: bytes
Content-Length: 36855
Content-Type: image/jpeg
-gox-
znalzlem cos przydatnego:

http://pl2.php.net/manual/pl/function.exif-read-data.php

czego to sie czlowiek nie dowie, jpeg potrafi przechowywac w sobie Trumbinalka smile.gif nie trzeba go generowac tylko wyciagnac "naglowka" wlasciwego jpega, co mocno ulatwia cala sprawe, na takie cos moge isc, bede sciagal po kawalku az ta funkcja zalapie smile.gif
z kilku prob wynika ze naglowek z tbumbinalem to 10-20 KB, jestem to w stanie przyjac na klate tongue.gif
michalg
Cytat(bim2 @ 6.11.2008, 20:44:20 ) *
Nie odczytasz. Dla przykładu:


Ale nie chodzi o odczytanie rozdzielczości z nagłówka http dla tego pliku, tylko o odczytanie nagłówka tego pliku - czyli pierwszych kilku(nastu, dziesięciu) (kilo) bajtów, które zawierają informacje o samym pliku.
-gox-
odczytanie wielkosci z naglowka http, jesli chodzi nam o wielkosc, to najprostrze, ale po sciagnieciu niecalych 400 bajtow mamy oto takie dane o pliku jpg:

  1. <?php
  2. exif('http://ostoja.kotkowski.w.interia.pl/grafika/grafika%20oryginalna.jpg');
  3.  
  4. function exif($url='') {
  5.    $fp = fopen($url, 'r') or die('blad polazenia');
  6.    $data = '';
  7.    $tmp_fname = sha1(uniqid(rand(), true));
  8.    while( ! feof($fp)) {
  9.        $data .= fread($fp, 128);
  10.        file_put_contents($tmp_fname, $data);
  11.        if ( false !== $exif_data = @exif_read_data($tmp_fname)) {
  12.            var_dump($exif_data);
  13.            echo "\n\n".strlen($data);
  14.            exit;
  15.        }
  16.    }
  17. }
  18.  
  19. //output:
  20. array(7) {
  21.  ["FileName"]=>
  22.  string(40) "e0d66c2c8d72f70152a985c9826529706f5c19ec"
  23.  ["FileDateTime"]=>
  24.  int(1226001537)
  25.  ["FileSize"]=>
  26.  int(384)
  27.  ["FileType"]=>
  28.  int(2)
  29.  ["MimeType"]=>
  30.  string(10) "image/jpeg"
  31.  ["SectionsFound"]=>
  32.  string(0) ""
  33.  ["COMPUTED"]=>
  34.  array(4) {
  35.    ["html"]=>
  36.    string(24) "width="600" height="831""
  37.    ["Height"]=>
  38.    int(831)
  39.    ["Width"]=>
  40.    int(600)
  41.    ["IsColor"]=>
  42.    int(1)
  43.  }
  44. }
  45.  
  46.  
  47. 384
  48. ?>


Birilient!
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.