Путаница с URL-адресами Gravatar - PullRequest
3 голосов
/ 25 июня 2010

У меня проблемы с настройкой Gravatars для правильной работы:

Когда я запрашиваю следующее:

http://gravatar.com/avatar/8a17d0d0d8bdf6a8d527bbc943a17cf8.jpg?s=64&d=identicon

Firefox гордо отображает следующее:
http://files.quickmediasolutions.com/gravatar_p.png

... указывает на то, что файл представляет собой PNG изображение.

Это меня смущает - я думал, что Gravatars были изображениями в формате JPEG.Кажется, они тоже могут быть.Как я могу узнать, является ли данное изображение в формате PNG или JPEG , желательно без предварительной загрузки его ?


Примечание: Некоторые люди сообщают, что Gravatar только возвращаетPNG изображения.Пожалуйста, объясните это:

http://files.quickmediasolutions.com/gravatar_p2.png

http://gravatar.com/avatar/03cd042b82ac85b2c5fe0757a94e0413?s=64&d=identicon

Ответы [ 2 ]

1 голос
/ 26 июня 2010

Если значки Gravatar имеют точные типы MIME, назначенные сервером, к которому вы обращаетесь, просто проверьте это. Должно быть image/jpeg для JPEG и image/png для PNG.

В противном случае ...

http://en.wikipedia.org/wiki/Portable_Network_Graphics#File_header

Файл PNG начинается с 8-байтовой подписи. Значения шестнадцатеричных байтов равны 89 50 4E 47 0D 0A 1A 0A; десятичные значения 137 80 78 71 13 10 26 10.

Так что просто проверьте восемь байтов в начале файла; если это PNG, он будет иметь указанные значения в этих байтах, а если нет, то не будет. Просто скачайте файл, возможно, временно сохраните его где-нибудь (что не должно быть слишком сложно, учитывая, что он не должен быть слишком большим), и обработайте его по-разному в зависимости от содержимого заголовка. Вы всегда можете изменить расширение файла и затем использовать графическую библиотеку PHP, если вы сначала сохранили его как неправильный тип. (Или вам не разрешено это делать?)


Как примечание, мой любимый бит о заголовке PNG:

50 4E 47 В ASCII - буквы PNG, позволяющие пользователю легко определить формат, если он просматривается в текстовом редакторе.

0 голосов
/ 25 июня 2010

Конечный тег - JPG, но строка интерпретируется сервером и отправляется соответствующее изображение. В этом случае PNG.

...