Фавикон в PNG на PHP


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

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

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

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

Кто-нибудь знает о скрипте/сервисе или у кого есть предложения? Спасибо!

Author: cjroth, 2011-01-03

6 answers

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

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

 4
Author: cjroth, 2011-01-18 21:38:28

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

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

$изображение= создание изображений ($имя файла);
$resized_image = цвет изображения ($новая ширина, $новая высота);
изображение с копией ($resized_image, $изображение, 0, 0, 0, 0, $ Новая ширина, $новая высота, $оригинальная ширина, $оригинальная высота);

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

 3
Author: Patrick Evans, 2011-01-03 14:16:06

Я использовал Imagemagick в своем favicon в PNG проекте веб-службы конвертера.

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

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

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

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

 2
Author: goker.cebeci, 2011-01-17 22:29:26

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

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

 1
Author: Victor, 2013-02-21 09:26:26

imagecopyresized - в документах также содержится пример

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

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

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

 0
Author: ajreal, 2011-01-03 13:48:51

Я использую здесь: http://plugins.trac.wordpress.org/browser/wp-favicons/trunk/plugins/filters/convert_to_png.php{[3] } библиотека отсюда: http://www.tom-reitz.com/2009/02/09/ico-images-in-facebook-profile-boxes/

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

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

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

 0
Author: edelwater, 2011-03-21 02:28:00