Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [AJAX][Java][PHP]Rzeczywista wielkość obrazka, Pobranie rzeczywistych wymiarów foto w mm oraz jego DPI
Kao
post
Post #1





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 19.10.2004
Skąd: Zgorzelec

Ostrzeżenie: (0%)
-----


Witam
Szukam rozwiązania problemu pobrania rzeczywistej wielkości obrazka/ów tzn.: jego/ich wymiarów w mm (bądź w cm) oraz jego/ich DPI
Nie będzie to skrypt umieszczany w sieci, a tylko odpalany na INTRANECIE, lokalnie. (mam jakiś tam serwer NAS z apachem, PHP, mysql)

Np. dla PHP
Ładuje do katalogu skrypt w pliku index.php
Katalog ma np. 20 obrazków.
wpisuje lokalnie w przeglądarce link do lokacji index.php
a skrypt generuje np:
ala_makota.jpg - 200 x 220mm - 300 dpi
kot_ma_ale.jpg - 220 x 320mm - 150 dpi
... itd.

generowanie zrobię sobie sam, ale nie mogę poradzić sobie z pobraniem wielkość w mm (pica najszybciej pobrać exif_read_data) i faktycznej DPI, chyba że się nie da w PHP?

Jeśli się nie da w PHP to może w jQuery albo java? każde rozwiązanie będzie mile widziane.

Jedna uwaga: obrazki mogą być sporej wielkości tzn. od 300 kb do 12 MB

EDIT1: jedno chyba znalazłem -> PICA na mm -> PICA*0.423333333 = MM

Z góry dziękuję
Pozdr.

Ten post edytował Kao 10.07.2010, 12:27:44
Go to the top of the page
+Quote Post
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




A nie lepiej by było wywołać
Kod
identify -verbose info: <image>]

z pakietu ImageMagick?


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Kao
post
Post #3





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 19.10.2004
Skąd: Zgorzelec

Ostrzeżenie: (0%)
-----


Google nie zawsze jest takie szczodre w odpowiedziach (bo mam kilka pytań snitch.gif), ale dziś troszkę poszukałem i oto super szybka metoda:

PHP:

  1. $exif['COMPUTED']['Height']*0.423333333 // wysokość w mm
  2. $exif['COMPUTED']['Width']*0.423333333 // szerokość w mm


i pobieranie DPI:
  1. function get_dpi($filename){
  2.  
  3. // open the file and read first 20 bytes.
  4. $a = fopen($filename,'r');
  5. $string = fread($a,20);
  6. fclose($a);
  7.  
  8. // get the value of byte 14th up to 18th
  9. $data = bin2hex(substr($string,14,4));
  10. $x = substr($data,0,4);
  11. $y = substr($data,4,4);
  12. return array(hexdec($x),hexdec($y));
  13.  
  14. }


Może komuś się przyda ... jak zrobię gotowy skrypt z użyciem tego to wrzucę.

Pozdr.

Temat do zamknięcia.

EDIT: 1
Troszkę w błąd wprowadziłem z tym podaniem rzeczywistej wielkości obrazka.
Powinno być:
wzór === (pixele / dpi ) * 2.54

ewentualnie zaokrąglić to do dwóch miejsc po przecinku:

  1. round((($exif['COMPUTED']['Height'])/hexdec($x)*2.54),2);
  2. round((($exif['COMPUTED']['Width'])/hexdec($y)*2.54),2);



Pozdr.

Ten post edytował Kao 17.07.2010, 11:13:37
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 01:02