6

多年来,我一直在使用http://tools.dynamicdrive.com/favicon/来生成网站图标。在我什至不知道如何进行任何编码之前,我就开始使用它(我现在不太好)。我不介意使用该实用程序,因为图标总是看起来不错,但我希望能够在本地进行。

如何使用脚本在本地创建网站图标?不知何故使用 PHP,imagemagick / gd 或者可能从命令行啜饮?

4

6 回答 6

7

您可以使用 imagemagik 转换。我从这个网站获取了这些命令。

首先制作一个主图像:

convert some_image.bmp -resize 256x256 -transparent white favicon-256.png

然后我们要为您想要包含在 .ico 文件中的每种尺寸制作图像。

convert favicon-256.png -resize 16x16 favicon-16.png

convert favicon-256.png -resize 32x32 favicon-32.png

convert favicon-256.png -resize 64x64 favicon-64.png

convert favicon-256.png -resize 128x128 favicon-128.png

现在您要将它们捆绑到 .ico 文件中,我发现的技巧是将其设置为 256 色,否则将无法正常显示!

convert favicon-16.png favicon-32.png favicon-64.png favicon-128.png favicon-256.png -colors 256 favicon.ico

于 2012-10-09T23:27:48.153 回答
3

ImageMagick 或 phpThumb 将为您执行此操作,但更简单的解决方案(仅需要 PHP 和 GD 库)是https://github.com/chrisbliss18/php-ico

于 2013-01-16T11:36:06.073 回答
1

看看这个脚本: http ://bgallz.org/488/php-favicon-generator-script/

我使用 PHP 编写它以从 jpeg、gif 或 png 生成 favicon (.ico) 文件。正如上面的 ernie 所说,大多数浏览器现在都支持图标的图像文件。该脚本只是将文件的扩展名更改为“.ico”

正如我所拥有的:

// Rename image to .ico file
rename($filename,"./favicon/".$strip_ext.".ico");
于 2012-10-17T19:18:28.820 回答
1

我为此创建了一个项目:faviconbuild

我用两个简单的脚本构建了它(一个 .bat 用于 Windows,一个 .sh 用于 Unix、Mac 和 Windows,如果使用 Cygwin)。它依赖于ImageMagick,因此您可以为您的平台下载最新版本,或者从我包含在发行版中的版本中获取。

我已经在MIT 许可下发布了它,因此您可以随意将它用于商业或个人项目,或者简单地用作您自己脚本的灵感。

我目前在我自己的项目中使用它,如下所示:

./faviconbuild/faviconbuild.sh -i ./source.png

您可以通过-hor--help选项获得可用命令的完整列表。

这将获取输入源图像并生成所有输出图像和多分辨率 .ico,以及您的网站所需的 html 标记。

还可以通过提供基于自定义文本的解析文件作为输入来自定义脚本。当前文件可以在这里的项目中找到。这使得脚本可以轻松地为所有平台上的任何项目扩展。

由于它托管在github上,因此我鼓励任何人为该项目做出贡献,即使只是提交功能请求。

我还发布了一篇博客文章,介绍了开发过程并作为 bash/batch 的迷你教程。

于 2015-10-09T16:18:18.430 回答
0

您真正需要做的就是将图像大小调整为 16x16 文件。虽然 ICO 格式曾经是标准格式,但现代浏览器可以处理PNG、GIF 和 JPG(以及其他格式)

通过谷歌搜索可以轻松找到调整大小的脚本,例如:

http://www.white-hat-web-design.co.uk/blog/resizing-images-with-php/

于 2012-10-09T23:25:48.380 回答
0

此脚本更新现有文件,您可能需要为您的项目更改它。删除“确认”行,或获取我的确认脚本以配合它。

警告:它将破坏.png当前目录中的任何文件。

#!/bin/bash -eu
# public domain, by Sam Watkins
echo "You need to run this from a directory containing only the png icons."
confirm "Are you in the icons directory?"
source=`readlink -f "$1"`
chmod -w $source
v convert "$source" -resize 512x512 -background white -alpha remove -alpha off tmp-512-white.png
v convert "$source" -resize 512x512 tmp-512.png
sizes="16 32 64 128 256"
favicons=
for W in $sizes; do
    F=favicon-${W}x$W.png
    v convert tmp-512.png -resize ${W}x$W $F
    favicons="$favicons $F"
done
v convert $favicons -colors 256 favicon.ico

for F in *.png; do
    case "$F" in
    favicon-*)
        ;;
    apple-touch-icon*)
        v convert tmp-512-white.png -resize `identify -format "%wx%h" "$F"` "$F"
        ;;
    *)
        v convert tmp-512.png -resize `identify -format "%wx%h" "$F"` "$F"
        ;;
    esac
done
rm -f tmp-512-white.png tmp-512.png

https://ucm.dev/b/make-icons

https://ucm.dev/b/confirm

于 2021-05-13T07:56:43.063 回答