我一直在用我的PHP脚本读取一些EXIF数据。我想确定某个图像是否已使用闪光灯。这是EXIF阅读器返回的值

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

其中哪一个表示已使用闪光灯?

此致,
姆拉乔

最佳答案

我相信,如果将十六进制值转换为二进制值,那么最右边的数字将指示闪光灯是否实际闪光。

所以:

+-------------------------------------------------------+------+----------+-------+
|                        Status                         | Hex  |  Binary  | Fired |
+-------------------------------------------------------+------+----------+-------+
| No Flash                                              | 0x0  | 00000000 | No    |
| Fired                                                 | 0x1  | 00000001 | Yes   |
| "Fired, Return not detected"                          | 0x5  | 00000101 | Yes   |
| "Fired, Return detected"                              | 0x7  | 00000111 | Yes   |
| "On, Did not fire"                                    | 0x8  | 00001000 | No    |
| "On, Fired"                                           | 0x9  | 00001001 | Yes   |
| "On, Return not detected"                             | 0xd  | 00001011 | Yes   |
| "On, Return detected"                                 | 0xf  | 00001111 | Yes   |
| "Off, Did not fire"                                   | 0x10 | 00010000 | No    |
| "Off, Did not fire, Return not detected"              | 0x14 | 00010100 | No    |
| "Auto, Did not fire"                                  | 0x18 | 00011000 | No    |
| "Auto, Fired"                                         | 0x19 | 00011001 | Yes   |
| "Auto, Fired, Return not detected"                    | 0x1d | 00011101 | Yes   |
| "Auto, Fired, Return detected"                        | 0x1f | 00011111 | Yes   |
|  No flash function                                    | 0x20 | 00100000 | No    |
| "Off, No flash function"                              | 0x30 | 00110000 | No    |
| "Fired, Red-eye reduction"                            | 0x41 | 01000001 | Yes   |
| "Fired, Red-eye reduction, Return not detected"       | 0x45 | 01000101 | Yes   |
| "Fired, Red-eye reduction, Return detected"           | 0x47 | 01000111 | Yes   |
| "On, Red-eye reduction"                               | 0x49 | 01001001 | Yes   |
| "On, Red-eye reduction, Return not detected"          | 0x4d | 01001101 | Yes   |
| "On, Red-eye reduction, Return detected"              | 0x4f | 01001111 | Yes   |
| "Off, Red-eye reduction"                              | 0x50 | 01010000 | No    |
| "Auto, Did not fire, Red-eye reduction"               | 0x58 | 01011000 | No    |
| "Auto, Fired, Red-eye reduction"                      | 0x59 | 01011001 | Yes   |
| "Auto, Fired, Red-eye reduction, Return not detected" | 0x5d | 01011101 | Yes   |
| "Auto, Fired, Red-eye reduction, Return detected"     | 0x5f | 01011111 | Yes   |
+-------------------------------------------------------+------+----------+-------+

关于php - 读取EXIF并确定闪光灯是否闪光,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7076958/

10-11 19:20