Я недавно заметил, что в макетах для нового профиля временной шкалы Facebook широко использует «обычную» версию (читай: больше) изображения профиля пользователя, как на временной шкале, так и в списке друзей.Как все мы знаем, это изображение получается путем запроса графика с:
https://graph.facebook.com/[userid]/picture?type=normal
Конечно, это изображение не является гарантированным квадратным кадрированием.Тем не менее, Facebook использует CSS на уровне элементов, чтобы расположить и обрезать его вручную (см. Изображение ниже).Позиционирование интересно тем, что, по-видимому, оно генерируется перед визуализацией страницы.
См .:
Обратите внимание, как применяется стиль CSS на уровне элементов.В данном случае это верхнее смещение:
style="top:-50%"
Я предполагаю, что это извлекает произвольное значение смещения / позиционирования откуда-то (график, дБ и т. Д.), Не используя какую-либо сторону клиентаJS для определения лица, так как процесс установки нового изображения профиля Facebook (обычно) включает в себя ручную обрезку вашего лица.Убедитесь сами: измените изображение своего профиля, и если пропорции не являются квадратными, есть промежуточный шаг ручной обрезки.
Кроме того, это изображение публикуется в /photo.php с x, y, ширина, высота и другие параметры передаются.Я знаю, что кое-что из этого используется для генерации квадратного урожая 50x50, но его также нужно хранить где-то еще, правильно?
Мой вопрос заключается в том, предоставляет ли Facebook метод извлечения этих значений смещения, чтобы мы моглиможет точно обрезать большие изображения профиля без необходимости распознавания лиц или обработки на стороне клиента, чтобы гарантировать, что объект находится в центре.