![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 60 Pomógł: 0 Dołączył: 7.05.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam! Mam następujący problem, chcem z obrazka jpeg wyciągnąć dane o ISOSpeed napisałem taki skrypt:
Kod <? $exif = exif_read_data('test3.jpg', 'Exif'); echo $exif['Model']; echo "<br>"; echo $exif['DateTime'];echo "<br>"; echo $exif['ExposureTime'];echo "<br>"; echo $exif['ISOSpeedRatings'];echo "<br>"; echo $exif['FNumber'];echo "<br>"; echo $exif['FocalLength'];echo "<br>"; ?> ale niestety miejsce gdzie ma się pojawić informacja o ISOSpeed jest puste, tak jak by ISOSpeedRatings wogóle nie działało, może mi ktoś pomóc? |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 605 Pomógł: 96 Dołączył: 22.10.2004 Skąd: UK Ostrzeżenie: (0%) ![]() ![]() |
Nie miałem styczności z tą instrukcją, jednak myślę, że powinieneś zacząć od prostego sprawdzenia czy taki klucz w tablicy istnieje w taki sposób:
I teraz masz jak na tacy wszystkie elementy. Jak znajdę coś więcej dopisze ![]() Może pomyliłeś wielkość liter? Ten post edytował strife 7.05.2006, 18:19:56 -------------------- Najczęstsze błędy | Jak poprawnie zadać pytanie? | Serwer PHP - od czego zacząć?
SQL Injection | Hashowanie haseł | Jak działają sesje, przykłady ___ The world is yours ... |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 530 Pomógł: 0 Dołączył: 15.01.2005 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
1. Jakiego aparatu używasz i czy jest on analogowy czy cyfrowy?
2. Jaką masz wersję exifa? 3. Jaki masz program do konwertowania zdjęć? Pytam się, bo exif nie do końca wyciąga wszyskie dane. Np w ogóle nie rusza wielu danych zdjęcia po obróbce photoshopa... Ale jeśli ta funkcja spełnia Twoje wymagania, to ok ![]() Ten post edytował Master Miko 7.05.2006, 18:36:43 -------------------- |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 60 Pomógł: 0 Dołączył: 7.05.2006 Ostrzeżenie: (0%) ![]() ![]() |
Aparat to cyfrak Canon PowerShot A75, program do zrzucania fotek to canon zoombrowser dołączony do aparatu, zgodność z EXIF 2.2, testuje na Apache2 + php 5.0 zdjęć nie konwertowałem inne dane takie jak przesłone, czas migawki skrypt podaje prawidłowo. Po uruchomieniu skryptu podanego przez strife'a większość danych wyskakuje prawidłowa lecz gdzieniegdzie są "kwadraciki" a tej funkcji ISOSpeedRatings nie pokazuje na innym zdjęciu robionym nikonem też cyfruwką wszystko jest ok i pokazuje tą funkcje. Ale ciekawostką jest to, że testując skrypt exifer ze strony http://www.offsky.com/software/exif/index.php w fotce z canona wszystko jest jak należy. Lecz ten skrypt jest strasznie duży jak na funkcje którą ma spełniać.
P.S. Ja sie wogóle nie znam na php więc wybaczcie wszystko :roll2: |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 530 Pomógł: 0 Dołączył: 15.01.2005 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
ee tam, nauczysz się
![]() ![]() No widzisz... exif by php ma problemy z niektórymi standardami.. (bo oczywiście każda firma musi robić własne...) daltego niektórzy piszą biblioteki, żeby ze wszystkim działało. Ten exifer ciężki może jest (ok. 110kb) ale z kodu widać że dobrze działa bo przecież przeszukuje plik zdjęciowy! Ja z kolei, znalazłem inny skrypt działający na postawie xmlu, który pobiera wartości, które tak naprawdę manualnie trzeba wpisać i niestety je jeszcze obrobić...ale zaimplementowałem go do innego skryptu - zapisaującego do bazy danych i w ten sposób robi się to raz. Funkcje exifowe (może się myle) ale z kodu wygląda tak, że raczej potrzebują dużej mocy obliczeniowej. Ten post edytował Master Miko 7.05.2006, 18:59:14 -------------------- |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 60 Pomógł: 0 Dołączył: 7.05.2006 Ostrzeżenie: (0%) ![]() ![]() |
No to pozostaje mi tylko urzyć tego exifer'a a wiesz może jak z niego korzystać bo przez tą funkcje print w index.php wyświetla się cała tablica a ja bym chciał tylko kilka wybranych tagów niestety nie ma nigdzie (albo ja niedowidze) opisanego jak z tego korzystać. np. jak wyświetlić tylko ISOSpeedRatings dalej sobie już poradze ;]
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 530 Pomógł: 0 Dołączył: 15.01.2005 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
To pokaż tę tablicę
![]() -------------------- |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 60 Pomógł: 0 Dołączył: 7.05.2006 Ostrzeżenie: (0%) ![]() ![]() |
Już doszedłem jak z niego korzystać jednak nie działa tak jak powinien ponieważ dla każdego zdjęcia robionego innym aparatem tworzy troche inną tablice. np.
Dla fotki robionej NIKONEM. Kod [SubIFD] => Array ( [ExposureTime] => 1/20 sec [FNumber] => f 3.6 [ExposureProgram] => Program [ISOSpeedRatings] => 200 [ExifVersion] => version 2.2 [DateTimeOriginal] => 2005:12:30 17:45:28 i żeby wywołać to musze wisać coś takiego: echo $result['SubIFD']['ISOSpeedRatings']; Natomias już dla fotki zrobionej Canonem częśćtablicy w której zawarta jest informacja o ISO wygląda tak: Kod [SubIFD] => Array ( [ExposureTime] => 1/250 sec [FNumber] => f 8 [ExifVersion] => version 2.2 [DateTimeOriginal] => 2006:05:07 13:04:01 [DateTimedigitized] => 2006:05:07 13:04:01 [ComponentsConfiguration] => YCbCr [CompressedBitsPerPixel] => 5 [ShutterSpeedValue] => 1/250 sec [ApertureValue] => f 8 [ExposureBiasValue] => 0 EV [MaxApertureValue] => f 4.8 [MeteringMode] => Spot [Flash] => No Flash [FocalLength] => 16.21875 mm [MakerNote] => Array ( [MakerNoteNumTags] => 18 [Settings 1] => Array ( [RAWDATA] => [Bytes] => 92 [Macro] => Macro [SelfTimer] => Off [Quality] => Superfine [Flash] => Off [DriveMode] => Single/Timer [Unknown] => 0 [FocusMode] => 0 [ImageSize] => Large [EasyShooting] => Manual [DigitalZoom] => No Digital Zoom [Contrast] => Normal [Saturation] => Normal [Sharpness] => Normal [ISO] => 400 [MeteringMode] => 1 [FocusType] => Close-up (Macro) [AFPointSelected] => 8197 [ExposureMode] => Manual [LongFocalLength] => 519 [ShortFocalLength] => 173 [FocalUnits] => 32 [FlashActivity] => 65535 [FlashDetails] => i nie moge wyświetlić wogóle chociaż w tablicy dane te są zawarte. Może zna ktoś jakiś inny dobry skrypt który systematyzuje wszystkie tablice od różnych aparatów? |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 530 Pomógł: 0 Dołączył: 15.01.2005 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
no to może spróbuj zwykłym exifem
![]() ostatnio bawiłem się tą funkcją pod wpyłwem tej rozmowy. Oto taki mały skrypcik który wyświela wszyskie informacjie (dałem all). No tylko jak mówiłem na samym początku, ma problemy z obróbką photoshopową :/ oto taki mały skrypcik, wygodny do testów:
używasz tak: skrypt.php?=nazwazdjecia.jpg obok wszyskich danych jakie w ogóle można wyciągnąć przez funkcje phpowską znajduje się zdjęcie. Ale co do schematyzacji nie wiem czy to Cię zadowoli -------------------- |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 60 Pomógł: 0 Dołączył: 7.05.2006 Ostrzeżenie: (0%) ![]() ![]() |
Cytat(Master Miko @ 2006-05-08 11:57:11) używasz tak: skrypt.php?=nazwazdjecia.jpg chyba mała pomyłka powinno być: skrypt.php?plik=nazwazdjecia.jpg pozwoliłem sobie zmodyfikować Twój skrypt na troche prościeszy bo nie działał nie wiem czemu: Kod <?php $plik = $_GET['plik']; $exif = exif_read_data($plik, 'ANY_TAG', true, true); if(is_array($exif)) { foreach ($exif as $key => $section) { foreach ($section as $name => $val) { echo "$key.$name: $val<br>\n"; } } } else { echo "No exif data"; } ?> tablice się ukazują ale jest w nich mały haos. Zdjęcie wykonane canonem A75: http://regss.no-ip.org/test/index.php?plik=test1.jpg Wogóle nie ma tagu o ISO Zdjęcie wykonane NIKONEM: http://regss.no-ip.org/test/index.php?plik=test4.jpg ISO jest ale też występuje mały haos. Obydwa zdjęcia są prosto z aparatu nie konvertowane nawet nie otwierane w innych edytorach. Może ma to coś wspólnego z moją wersją php, Apatcha2 albo z konfiguracją? Jeśli możesz sprawdz te zdjęcie czy Tobie równierz wyskakują krzaczki: http://regss.no-ip.org/test/test1.jpg |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 530 Pomógł: 0 Dołączył: 15.01.2005 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
tak powinno być plik=
![]() ![]() No jest w nich mały haos, ale dzięki nazwom można wyodrębnić poszczególne wartości ![]() a co do ISO... widać, że canon jest głupi i nie trzyma standardów exif... test/test1.jpg - nie wyskakują mi krzaczki. Jeśli masz najnowsze php i apacha 2 to znaczy że u Ciebie wszystko ok, ale nie wszystko ok u canona.... -------------------- |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 60 Pomógł: 0 Dołączył: 7.05.2006 Ostrzeżenie: (0%) ![]() ![]() |
Czyli coś musi być nie tak u mnie, ponieważ mi przy test1.jpg wyskakuje pełno "krzaków" oto wycinek z przeglądarki:
http://regss.no-ip.org/test/screen.jpg Dobrze myśle? Ten post edytował Regss 8.05.2006, 20:04:27 |
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 530 Pomógł: 0 Dołączył: 15.01.2005 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Wszystko jest ok. To jest exifowy tumbnail
![]() To jest tzw. zdjęcie w zdjęciu ![]() Tzn exif robi odrazu miniatrukę w exifie, żeby szybciej wczytywały się zdjęcia. -------------------- |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 60 Pomógł: 0 Dołączył: 7.05.2006 Ostrzeżenie: (0%) ![]() ![]() |
Znalazlem cos nowego poniewaz tamte rozwiazania mnie nie zadowalaly.
Mianowicie cos takiego: http://www.sentex.net/~mwandel/jhead/ napisany w jezyku c tylko nie moge napisac teraz skryptu ktory wykonal by mi operacje po wpisaniu czegos takiego: Kod <?php $jhead = "usr/bin/jhead"; $image = "test1.jpg"; $command = "$jhead -exonly $image"; echo "$command"; ?> Ale wyskakuje mi tylko napis "usr/bin/jhead -exonly test1.jpg" moze mi ktos podpowiedziec jak to uruchomic? Bo ja jestem zielony w php. edit: Juz sam doszedlem: Kod <?php
$PicFile = "c:/test1.jpg"; exec("/usr/bin/jhead $PicFile", $OutputArray); $OutputString = implode($OutputArray, " "); print "<b>$OutputString</b>"; ?> Ten post edytował Regss 9.05.2006, 23:47:30 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 13:46 |