hieu-le/favicon

一个可配置的PHP解决方案,从原始PNG文件自动生成favicon和HTML元标签。

1.1.0 2015-03-19 02:34 UTC

This package is auto-updated.

Last update: 2024-09-05 20:12:46 UTC


README

Build Status Latest Stable Version Total Downloads Latest Unstable Version License

一个可配置的PHP解决方案,从原始PNG文件自动生成favicon和HTML标签。

这个包做什么?

简而言之,它可以帮助您仅使用一个原始PNG图像就正确显示网站favicon。

更详细地说,它支持

  • 从单个原始PNG图像创建一个ICO文件和多个PNG文件,包含多个favicon大小,以及为Android设备生成一个manifest.json文件。输入文件路径和输出文件夹(包含图像和json文件)都可以通过命令行界面进行配置。
  • 生成适用于桌面网络浏览器和移动触摸设备的合适的metalink标签,以正确显示favicon。

安装

我们需要PHP imagick扩展PHP GD扩展来生成图像。默认情况下,加载了Imagick扩展,如果无法安装它,可以在可用的情况下通过命令行选项切换到使用GD 扩展

您需要(Composer)[]来使用此包。安装Composer后,将此依赖项添加到您的composer.json文件中。

"hieu-le/favicon" : "~1.0"

运行composer update并开始使用。

生成图像

要使用命令行生成favicon文件

$ vendor/bin/favicon generate [--ico-64] [--ico-48] [--no-old-apple] [--no-android] [--no-ms] [--app-name="..."] input [output]

参数

  • input:输入图像文件的路径,这是必需的
  • output:包含输出文件的文件夹的路径。如果此文件夹不存在,则包将尝试创建它。此参数是可选的,默认值为当前文件夹。

选项

  • --use-gd:使用GD扩展而不是Imagick扩展 默认使用Imagick扩展。如果无法加载Imagick扩展,则使用GD库。
  • --ico-64:在输出ICO文件中包含64x64图像(默认情况下,输出ICO文件只包含16x16和32x32图像)
  • --ico-48:在输出ICO文件中包含48x48图像(默认情况下,输出ICO文件只包含16x16和32x32图像)。--ico-48--ico-64选项会使输出图标文件的大小大大增加。
  • --no-old-apple:排除旧款Apple触摸设备使用的png文件
  • --no-android:排除manifest.json文件和Android设备的PNG文件
  • --no-ms:排除Windows磁贴的图像
  • --app-name="..."manifest.json文件中设置应用程序名称。默认为空字符串。

输出HTML标签

在您的HTML模板中调用favicon函数,如下所示

echo favicon($option = FAVICON_ENABLE_ALL, array $msOptions = array())

$option参数是一个位掩码,具有以下位

  • FAVICON_NO_OLD_APPLE:不要包含旧款Apple触摸link标签
  • FAVICON_NO_ANDROID:不要包含Android manifest.xml链接标签
  • FAVICON_NO_MS:不要包含Windows和IE meta标签

默认值FAVICON_ENABLE_ALL关闭所有这三个位,并将所有内容包含在最终输出中。以下是一些示例

  • 要排除旧款Apple触摸link标签:FAVICON_NO_OLD_APPLE
  • 要排除Android清单文件和IE的meta标签:FAVICON_NO_ANDROID | FAVICON_NO_MS
  • 要排除所有这些附加标签:FAVICON_NO_OLD_APPLE | FAVICON_NO_ANDROID | FAVICON_NO_MS

$msOptions参数是一个包含Windows和IE信息的数组。它可以有以下字段

  • tile_color:当此网站被固定时,实时磁贴的背景色,默认为白色(#ffffff
  • browser_config_file:如果有浏览器配置XML文件,则为其指定路径。默认情况下,它被设置为空字符串,以防止IE自动查找browserconfig.xml文件
  • application_name:用户固定此网站时显示的默认应用程序名称

的结果是

echo favicon(FAVICON_ENABLE_ALL, array(
  'tile_color' => '#F0F0F0', 
  'browser_config_file' => 'IEConfig.xml', 
  'application_name' => 'Hieu Le Favicon'
));

一个HTML片段,链接到

<meta name="msapplication-config" content="/IEConfig.xml" />
<link rel="apple-touch-icon" sizes="57x57" href="/apple-touch-icon-57x57.png" />
<link rel="apple-touch-icon" sizes="60x60" href="/apple-touch-icon-60x60.png" />
<link rel="apple-touch-icon" sizes="72x72" href="/apple-touch-icon-72x72.png" />
<link rel="apple-touch-icon" sizes="114x114" href="/apple-touch-icon-114x114.png" />
<link rel="apple-touch-icon" sizes="76x76" href="/apple-touch-icon-76x76.png" />
<link rel="apple-touch-icon" sizes="120x120" href="/apple-touch-icon-120x120.png" />
<link rel="apple-touch-icon" sizes="152x152" href="/apple-touch-icon-152x152.png" />
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon-180x180.png" />
<link rel="icon" type="image/png" href="/favicon-32x32.png" sizes="32x32" />
<link rel="icon" type="image/png" href="/android-chrome-192x192.png" sizes="192x192" />
<link rel="icon" type="image/png" href="/favicon-16x16.png" sizes="16x16" />
<link rel="manifest" href="/manifest.json" />
<meta name="application-name" content="Hieu Le Favicon" />
<meta name="msapplication-TileColor" content="#F0F0F0" />
<meta name="msapplication-TileImage" content="/mstile-144x144.png" />
<meta name="msapplication-square70x70logo" content="/mstile-70x70.png" />
<meta name="msapplication-square150x150logo" content="/mstile-150x150.png" />
<meta name="msapplication-wide310x150logo" content="/mstile-310x150.png" />
<meta name="msapplication-square310x310logo" content="/mstile-310x310.png" />

许可证

该软件包在MIT许可证下发布。有关更多详细信息,请参阅LICENSE文件。