如何使用脚本在本地创建网站图标?

Posted

技术标签:

【中文标题】如何使用脚本在本地创建网站图标?【英文标题】:How can I create a favicon locally with a script? 【发布时间】:2012-10-09 23:15:29 【问题描述】:

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

不知何故使用 php,imagemagick / gd 或者可能从命令行啜饮?

【问题讨论】:

【参考方案1】:

您可以使用 imagemagik 转换。我从this website 获取了这些命令。

先制作主图:

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

【讨论】:

【参考方案2】:

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

【讨论】:

【参考方案3】:

看看这个脚本: 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");

【讨论】:

【参考方案4】:

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

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

我已经在MIT license 下发布了它,所以您可以随意将它用于商业或个人项目,或者只是用作您自己脚本的灵感。

我目前在自己的项目中这样使用它:

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

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

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

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

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

我还发布了一个blog post,它涵盖了开发过程,并用作关于 bash/batch 的迷你教程。

【讨论】:

【参考方案5】:

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

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

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

【讨论】:

【参考方案6】:

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

警告:它将破坏当前目录中的任何.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-$Wx$W.png
    v convert tmp-512.png -resize $Wx$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

【讨论】:

以上是关于如何使用脚本在本地创建网站图标?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用python脚本从网站中废弃数据并以层次结构存储在文件夹中?

如何使用 SVN 推出 ASP.NET 网站?

如何给网站设置ICO图标

如何更改网站的 ico图标

如何使用 CSV 创建本地用户并将它们放在一个组中

如何在 Vue Cli 生成的 WPA 项目的标题内编辑自动注入的网站图标标签?