Favicon для PNG в PHP

Мне нужен PHP-скрипт для преобразования значков в PNG, сохраняя их исходные размеры.

Я знаю, что у Google есть секретный конвертер значков – http://www.google.com/s2/favicons?domain=http://facebook.com/, но это преобразует значки в 16×16, даже если они изначально были больше. Так что в основном мне это нужно, минус уменьшающийся эффект.

Я также видел это: http://www.controlstyle.com/articles/programming/text/php-favicon/, но я не мог заставить его работать после нескольких часов общения с ним.

В основном я пытаюсь автоматически захватить значок для ссылки, которая будет как можно больше – автоматически 48×48 png на основе URL-адреса будет идеальным сценарием, но я не знаю ни о каком человеческом возможном способе сделать это, учитывая, что нет веб-сайты, как правило, сохраняют значок 48×48 в общедоступном месте.

Кто-нибудь знает о сценарии / службе или имеет предложение? Благодаря!

Solutions Collecting From Web of "Favicon для PNG в PHP"

Поэтому я закончил использование класса FloIcon, который мог бы преобразовать BMP в ICO. Я должен отметить, что всегда важно проверить тип файла значка и не предполагать, что .ico означает bmp, потому что некоторые сайты (например, Facebook) были фактически PNG).

@ goker.cebeci Ваше обслуживание выглядит потрясающе! Главное, что мне нужно, чтобы мои значки были максимальным размером, когда это было возможно, поэтому я просто написал свой собственный скрипт.

Вот функция для преобразования из bmp (ico) в png http://us3.php.net/manual/en/function.imagecreate.php#53879

  1. Загрузите ico на свой сервер (file_get_contents или другие методы), как правило, это favicon.ico на базовом URL-адресе или очистите код html для <link rel="shortcut icon" href="ico_url_here" type="image/x-icon" /> и извлечь href
  2. используйте функцию из ссылки выше, чтобы преобразовать в png
  3. использовать функции GD для открытия и изменения размера

$ image = imagecreatefrompng ($ filename);
$ resized_image = imagecreatetruecolor ($ NewWidth, $ NewHeight);
imagecopyresampled ($ resized_image, $ image, 0, 0, 0, 0, $ NewWidth, $ NewHeight, $ OriginalWidth, $ OriginalHeight);

4 Сохраните файл (imagepng или аналогичный)

Я использовал Imagemagick на своем значке для проекта веб-сервиса конвертера PNG .

 convert "favicon.ico" -thumbnail 16x16 -alpha on -background none -flatten "favicon.png" 

Некоторые значки веб-сайтов имеют сцену и их размеры больше 16×16 пикселей, например: http://blogger.com/favicon.ico

http://www.google.com/s2/favicons?domain=http://facebook.com/ не работает должным образом. Итак, для этого я разработал веб-сервис.

Если вы хотите попробовать мой веб-сервис, вы можете пойти по этому пути http://geticon.org/of/http://facebook.com/ или по этому адресу http://geticon.org/of/facebook.com

Код в http://www.controlstyle.com/articles/programming/text/php-favicon/ имеет небольшую ошибку:

Вам нужно изменить $entry['swBitCount'] на $entry['wBitCount'] . Когда я сделал это, изменив все права работы

imagecopyresized – документы также содержат пример

Вышеизложенное требует компиляции с опцией --with-gd

Я предполагаю, что вы также не знали о расширении воображения

и т. д.: все возможные расширения / функции обработки изображений

Я использую здесь: http://plugins.trac.wordpress.org/browser/wp-favicons/trunk/plugins/filters/convert_to_png.php a lib отсюда: http://www.tom-reitz.com/2009/ 02/09 / Ico-изображения-в-facebook-профильными-боксы /

(Сначала я не хотел сначала сохранять ico на диск)

Единственная проблема с lib заключается в том, что иногда она прерывается на XOR, например, на этом значке: http://www.slatch.com/

Так что это то, что мне нужно исправить, но, кроме того, он отлично справился с тысячами значков.