Фавикон в 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 в общедоступном месте.
Кто-нибудь знает о скрипте/сервисе или у кого есть предложения? Спасибо!
6 answers
Так что в итоге я использовал класс FloIcon, который мог конвертировать BMP в ICO. Я должен отметить, что всегда важно проверять тип файла значка и не предполагать, что .ico означает bmp, потому что некоторые сайты (например, Facebook) на самом деле были PNG).
@goker.cebeci Ваш сервис выглядит потрясающе! Главное, что мне нужно было, чтобы мои иконки были максимального размера, когда это возможно, поэтому я просто написал свой собственный сценарий.
Вот функция для преобразования из bmp(ico) в png http://us3.php.net/manual/en/function.imagecreate.php#53879
- Загрузка ico на ваш сервер (file_get_contents или другими способами) обычно является фавиконом.ico на базовом URL-адресе или очистите html-код для элемента
<link rel="shortcut icon" href="ico_url_here" type="image/x-icon" />
и извлеките href - используйте функцию по ссылке выше для преобразования в формат png
- используйте функции GD для открытия и изменения размера
$изображение= создание изображений ($имя файла);
$resized_image = цвет изображения ($новая ширина, $новая высота);
изображение с копией ($resized_image, $изображение, 0, 0, 0, 0, $ Новая ширина, $новая высота, $оригинальная ширина, $оригинальная высота);
4 Сохраните файл (imagepng или аналогичный)
Я использовал 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
Код в http://www.controlstyle.com/articles/programming/text/php-favicon / имеет небольшую ошибку:
Вам нужно изменить $entry['swBitCount']
на $entry['wBitCount']
. Когда я сделаю так, чтобы все изменения работали правильно
imagecopyresized
- в документах также содержится пример
Вышеизложенное требует компиляции с опцией --with-gd
Я предполагаю, что вы также не знали о расширении imagick
И Т.Д: все возможные расширения/функции обработки изображений
Я использую здесь: 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/
Так что это то, что мне нужно исправить в нем, но, кроме того, это отлично работал с тысячами икон.