Я не знаю о PHP конкретно, но Вы могли идти по дереву процесса, пока Вы не нашли или init или крон.
Принятие PHP может получить свой собственный идентификатор процесса и выполнить внешние команды, это должен быть вопрос выполнения ps -ef | grep pid
, где изодромный с предварением Ваш собственный идентификатор процесса, и извлеките идентификатор родительского процесса (PPID) из него.
Тогда делают то же к этому PPID до Вас или достигают крона как родителя или init как родитель.
, Например, это - мое дерево процесса, и Вы видите цепочку принадлежности, 1-> 6386-> 6390-> 6408.
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 16:21 ? 00:00:00 /sbin/init
allan 6386 1 0 19:04 ? 00:00:00 gnome-terminal --geom...
allan 6390 6386 0 19:04 pts/0 00:00:00 bash
allan 6408 6390 0 19:04 pts/0 00:00:00 ps -ef
те же процессы, выполненные под кроном, были бы похожи:
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 16:21 ? 00:00:00 /sbin/init
root 5704 1 0 16:22 ? 00:00:00 /usr/sbin/cron
allan 6390 5704 0 19:04 pts/0 00:00:00 bash
allan 6408 6390 0 19:04 pts/0 00:00:00 ps -ef
Это "хождение по решению для" дерева процесса означает, что Вы не должны волноваться о представлении искусственного параметра, чтобы указать, работаете ли Вы под кроном или не - можно забыть делать это на интерактивной сессии и вещах материала.
Расчет глубины резкости:
t = A * (S / 1440) * (D - F) / F ^ 2
Ближайшее фокусное расстояние = D / (1+ t)
Дальнее фокусное расстояние = D / (1-t)
И полная глубина резкости является разницей между ними.
Переменные:
A = диафрагма объектива (F-число)
S = размер диагонали сенсора камеры или плоскости пленки в мм
D = фокусное расстояние в мм
F = фокусное расстояние объектива в мм
Конечно, резкость фокуса субъективна и регулируется изменение константы в расчете круга нерезкости (CoC). Здесь я использовал CoC = S / 1440, что является обычно используемым значением.
Я предполагаю здесь, поэтому был бы признателен, если бы кто-нибудь еще мог подтвердить это:
Я считаю, что вы не можете программно определить глубину резкости из доступных данных EXIF - вы должны знать диафрагма, фокусное расстояние, и это очень важно: расстояние до объекта.
Поля FNumber
и Фокусное расстояние
дадут вам первые два. Третий обычно невозможно определить с помощью камеры. Вам понадобится какой-то механизм для определения расстояния - дополнительное оборудование для камеры или некоторые известные значения для триангуляции.
На этой веб-странице http://www.dofmaster.com/dofjs.html есть прямое объяснение того, что используется в вычислениях глубины резкости: