PHPを使用してEXIFデータを画像から取得すると、Flash
の値が整数になります。bitwiseを使用してEXIFフラッシュの読み込み可能な文字列を列挙します
たとえば、16
を16進数に変換すると、0x10
になります。これは、フラッシュがオフに切り替えられたこと、およびフラッシュ火災なかっ:
0x0 = No Flash
0x1 = Fired
0x5 = Fired, Return not detected
0x7 = Fired, Return detected
0x8 = On, Did not fire
0x9 = On, Fired
0xd = On, Return not detected
0xf = On, Return detected
0x10 = Off, Did not fire
0x14 = Off, Did not fire, Return not detected
0x18 = Auto, Did not fire
0x19 = Auto, Fired
0x1d = Auto, Fired, Return not detected
0x1f = Auto, Fired, Return detected
0x20 = No flash function
0x30 = Off, No flash function
0x41 = Fired, Red-eye reduction
0x45 = Fired, Red-eye reduction, Return not detected
0x47 = Fired, Red-eye reduction, Return detected
0x49 = On, Red-eye reduction
0x4d = On, Red-eye reduction, Return not detected
0x4f = On, Red-eye reduction, Return detected
0x50 = Off, Red-eye reduction
0x58 = Auto, Did not fire, Red-eye reduction
0x59 = Auto, Fired, Red-eye reduction
0x5d = Auto, Fired, Red-eye reduction, Return not detected
0x5f = Auto, Fired, Red-eye reduction, Return detected
が読める文字列を返すことができるように、ビット単位を使用してPHPでこれを列挙する方法があります。
例えば、0x19
ある25
の値は、おそらくこのような何かを見て(と動作しているようです)になります。
$fired = 0x01;
$auto = 0x18;
$flashValue = dechex(25); // 0x19
$parts = [];
if ($flashValue & $fired)
{
$parts[] = 'Fired';
}
if ($flashValue & $auto)
{
$parts[] = 'Auto';
}
$string = implode(', ', $parts); // "Fired, Auto"
これは動作するようですが、例など、元の一例として、私が見えることはできません働く。