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

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

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

【问题讨论】:

    标签: php imagemagick gd favicon


    【解决方案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-${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

              【讨论】:

                猜你喜欢
                • 2011-01-18
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2013-07-22
                相关资源
                最近更新 更多