Autor Zpráva
M**
Profil *
Jak získat ze souboru *.JPG exif informace?
konkrétně citlivost, clonu, expoziční čas a zoom

Díval jsem se na dokumetaci EXIF_READ_DATA, ale je to v EN a já tomu nerozumím.
M**
Profil *
a ještě datum a čas
joejoe
Profil *
ono tam toho zas tak moc neni:

$nazev_souboru = "fotka.jpg";
$sections = "FILE, COMPUTED, ANY_TAG, IFD0, THUMBNAIL, COMMENT, EXIF"; // jakou cast exifu chces (jako string oddeleny carkami)
// je mozne ze bude hlasit chybu pokud se nejaka "section" nevyskytuje (zalezi na typu fotaku)
$arrays = true; // nebo "false" jestli to ma byt jako vice poli nebo jenom jedno pole (nejsnazsi pro pochopeni je zkusit nejdriv jedno a potom druhe)
$thumbnail = false; // jestli se ma cist nahled obrazku

$pole = exif_read_data($nazev_souboru, $sections, $arrays, $thumbnail); // potom se to spusti

print_r($pole); // vysledek nechame vypsat
M**
Profil *
hlásí to, a nejde to:

Fatal error: Call to undefined function: exif_read_data() in c:apachehtdocsexif.php on line 15
joejoe
Profil *
v php.ini je potreba povolit extension exif.

To jestli je povoleny se da zjisit treba tak, ze na strance <?php phpinfo(); ?> je napsane "EXIF Support" "enabled"
M**
Profil *
v phpinfo nic o exif napsane neni :-(
DJ Miky
Profil
Tak musíš v php.ini odkomentovat řádek:
;extension=php_exif.dll
Tzn. změnit ho na:
extension=php_exif.dll
(odstranit ten středník)
M**
Profil *
to jsem udělal, a:

Fatal error: Call to undefined function: exif_read_data() in c:apachehtdocsexif.php on line 15
djlj
Profil
Restartovals apache?
Hugo
Profil
A ještě je nutné mít správně nastavenou cestu k příslušnému dll souboru.
joejoe
Profil *
zkousel jsem to ted na svojem nb (WinXP, Apache 2.2.4, php 5.2.1) a dosel jsem k tomu, ze to nejsem schopen rozchodit.

Kdyz to povolim, restartuju apache, tak se nic nestane.

Kdyz to spustim z commandline "c:apachephpphp ./test.php", tak to nejdriv zarvalo, ze to nema php_mbstring.dll. Kdyz nakopiruju tohle dll do c:windowssystem32 tak muzu maximalne odeslat microsoft hlaseni o chybach..

mozna staci stahnout novou verzi php..
djlj
Profil
joejoe
Koukni do error logu.
joejoe
Profil *
[21-Jul-2007 14:00:27] PHP Warning: PHP Startup: Unable to load dynamic library 'C:/Apache/php/extphp_exif.dll' - The specified module could not be found.
in Unknown on line 0

soubor tam ale je, takze nevim...
rrr
Profil *
Načítání .dll knihoven musí být v tomto pořadí!!!

extension=php_mbstring.dll
extension=php_exif.dll
kuba_kuba
Profil
caw udělal sem si tohle a funguje to tady to je pod ikonkou fotaku
http://www.bacso-kamil.euweb.cz/pages/detail/index.php?id=51&kat=1&lis t=

<?php
$jpgecko="fotogalerie/".$row['fotky']."";
$exif = exif_read_data($jpgecko, 'IFD0');
echo $exif===false ? "<b>Bez informací exifu.</b><br /> " : "<b>Informace z exifu</b> k obrázku <b>".$row['nadpis']."</b><br /> ";

ini_set('exif.encode_unicode', 'UTF-8');
$exif = exif_read_data($jpgecko, 0, true);

foreach ($exif as $key => $section) {
foreach ($section as $name => $val) {
$exif_pole[] ="$val";
}
}
if($exif_pole[44]== 9){ $blesk= "zapnut";}
if($exif_pole[44]== 16){$blesk= "vypnut";}
$for=$exif_pole[2];
echo "Název: ".$exif_pole[0]."<br />";
echo "Rozlišení: ".$exif_pole[8]."×".$exif_pole[7]."<br />";
echo "Velikost: ".$for." bytů <br />";
echo "Čas expozice: ".$exif_pole[32]."<br />";
echo "Parametr: ".$exif_pole[34]."<br />";
echo "Citlivost ISO: ".$exif_pole[35]."<br />";
echo "Blesk: ".$blesk."<br />";
echo "Ohnisk.vzdalenost: ".$exif_pole[45]."<br />";
echo "Clona: ".$exif_pole[12]."<br />";
echo "Značka: ".$exif_pole[17]."<br />";
echo "Model: ".$exif_pole[18]."<br />";
echo "CCD snímač: ".$exif_pole[11]."<br />";
echo "Datum: ".$exif_pole[23]."";

pokud chces si vybrat i jine možnosti z exifu odkomentuj tento řádek a vypíše ti to pole celý
//print_r( $exif_pole);
?>
valecekm
Profil
Zdravím všecky,
chtěl bych se zeptat, jestli existuje nějaký spolehlivý zbůsob, na zjištění z exifu, jestli byl použit blesk či ne. Sice výše uvedený způsob funguje na o nom zmíněném webu(i na mém), ovšem na fotografie pořízené z jiného fotoaparátu nefunguje, protože některé u blesku uvádějí čísla 32, 24, 1 ...atd, prostě různá čísla a to konkrétně v poli ['EXIF']['Flash']. Prohledal jsem kde jsem co mohl a našel i odlišné způsoby, ovšem výsledek úplně stejný jako u výše napsaného a to stále chybný a nikde žádné univerzální a kdyby apsoň 80% úspěšné řešení.

Pokud by také někdo vědel co vlastně ony všechny čísla u blesku znamenají, či věděl o nějakém souhrnu všech možných výpisů použití a nepoužití blesku, tak by mi to stačilo. Mě to totiž připadne, že si každý foťák ukládá data jak chce, aspoň tedy podle výpisu informací z exif pomocí PHP :-( (ikdyž klasické fotoeditory použití blesku zobrazují správně - ZonerPhotoStudio).

Předem děkuji za odpovědi.
Mike8748
Profil
valecekm:
http://exif.org/Exif2-2.PDF
strana 36 v dokumentu (42 strana PDF), tam je seznam všech možností ohledně blesku
valecekm
Profil
Mike8748:
Jj díky za nakopnutí, teď jsem našel i stejnou problematiku v češtině www.fit.vutbr.cz/study/DP/rpfile.php?id=11881, takže jsem dospěl k názoru, že když ono uvedené číslo u blesku převedu do binární podoby a vemu jeho poslední bit(při otočení první), který nese informaci jestli byl blesk použit či nebyl(0/1), tak bych měl mít jasno....? Zatím mi to podle údajů z klasického fotoeditoru sedí i s údaji z PHP. Jen tedy kdyby někdo pro příště našel toto vlákno jako já, tak jen bych chtěl poprosit o potvrzení jestli má doměnka a řešení je správná či totální blábol(ovšem pak by to byla velká náhoda, že mi každá fotka odpovídá)?

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: