2011-01-03 5 views
7

J'ai besoin d'un script PHP pour convertir les favicons en fichiers PNG tout en conservant leurs dimensions d'origine.Favicon au format PNG en PHP

Je sais que Google a son convertisseur d'icône secret - http://www.google.com/s2/favicons?domain=http://facebook.com/ mais convertit les favicons en 16x16 même s'ils étaient à l'origine plus grands. Donc, fondamentalement, j'ai besoin de cela, moins l'effet de rétrécissement.

J'ai également vu cela - http://www.controlstyle.com/articles/programming/text/php-favicon/ mais je ne pouvais pas le faire fonctionner après des heures de déconner avec elle. Fondamentalement, j'essaie de saisir automatiquement l'icône pour un lien qui sera aussi grand que possible - automatiquement 48x48 png basé sur une URL serait le scénario parfait, mais je ne connais pas de façon humainement possible de faire ceci étant donné qu'aucun site web n'arrive à garder une icône 48x48 dans un endroit accessible au public.

Est-ce que quelqu'un connaît un script/service ou a une suggestion? Merci!

Répondre

4

Je fini par utiliser une classe appelée FloIcon qui pourrait convertir BMPS ICO. Je dois noter qu'il est toujours important de vérifier le type de fichier d'une icône et ne pas supposer que .ico signifie bmp parce que certains sites (comme Facebook) étaient en fait PNG).

@ goker.cebeci Votre service a l'air génial! La chose principale est que j'avais besoin que mes icônes soient de la taille maximum quand c'était possible, donc j'ai juste écrit mon propre script.

3

Voici une fonction pour convertir bmp (ico) à png http://us3.php.net/manual/en/function.imagecreate.php#53879

  1. Télécharger le ico à votre serveur (file_get_contents ou d'autres méthodes) est généralement Favicon.ico à l'adresse de base, ou racler le code html pour l'élément <link rel="shortcut icon" href="ico_url_here" type="image/x-icon" /> et extraire le href
  2. utiliser la fonction à partir du lien ci-dessus de se convertir à l'.png
  3. utiliser les fonctions GD pour ouvrir et redimensionner

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

4 Enregistrez le fichier (imagepng ou similaire)

+0

pas 'file_put_contents' mais' imagepng' –

+0

Merci. réponse éditée –

2

J'ai utilisé Imagemagick sur mon favicon à PNG projet de service web de conversion.

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

Certains sites ont favicons scène et leurs tailles sont plus grandes que 16x16 pixels par exemple: http://blogger.com/favicon.ico

http://www.google.com/s2/favicons?domain=http://facebook.com/ ne fonctionne pas correctement. Donc, j'ai développé un service web pour cela.

Si vous voulez essayer mon service web, vous pouvez aller dans cette voie http://geticon.org/of/http://facebook.com/ ou cette façon http://geticon.org/of/facebook.com

+0

Lorsque j'essaie d'utiliser votre service web comme ceci http://geticon.org/of/techcrunch.com, l'accès est refusé. – TilalHusain

+0

Idem, 403 Interdit – johncorser

+0

J'ai développé geticon.org en tant que service web en 2011. Maintenant, je décide de fermer le service web car il génère énormément de trafic et je ne peux pas le gérer. Vous pouvez accéder à la source sous le https://github.com/gokercebeci/geticon –

0

Im en utilisant ici: http://plugins.trac.wordpress.org/browser/wp-favicons/trunk/plugins/filters/convert_to_png.php une lib d'ici: http://www.tom-reitz.com/2009/02/09/ico-images-in-facebook-profile-boxes/

(je ne voulais pas sauver les années ico sur le disque en premier)

Le seul problème avec la lib est qu'il échoue parfois sur le XOR par exemple sur ce favicon: http://www.slatch.com/

C'est donc quelque chose que je dois corriger en lui, mais en outre, il a très bien fonctionné pour des milliers d'icônes.

Questions connexes