odinshat/tyre-label-generator

PHP 库 Tyre Label Generator,兼容欧盟轮胎标签风格和标准

v2.1.0 2020-12-27 13:53 UTC

README

Build Status License PRs Welcome

重要

截至2021年5月,欧盟轮胎标签格式正在改变。这是已知的,开发工作将尽可能快地进行以实施这些更改。请随时通过GitHub的问题功能提交任何PR或建议。

非常感谢您的耐心。目前,您可以通过以下链接查看即将到来的更改的详细信息(向下滚动至附件1)。您还可以在docs目录中找到英文文档,我将在稍后日期将所有其他欧盟语言的文档也放在那里。

背景

欧盟从2012年11月1日起实施了轮胎标签。这是一个能够生成欧盟轮胎标签图像和HTML/CSS堆叠图像的PHP库。自2012年以来,欧盟轮胎标签的设计没有变化,因此截至2020年,此库仍然有效。

输出示例

Example Tyre Label

上述内容是通过类中的genHtmlLabel方法生成的(然后截图)

安装

最简单的方法是使用composer要求包

composer require odinshat/tyre-label-generator

然而,您可以根据自己的需求选择两个版本之一。

  • PHP7+版本,即版本2.0+
  • 与PHP5.4兼容的版本,其最新可工作版本为v1.2

测试

2.0+版本是库的PHP7版本,它包含一个完整的测试套件,您可以使用PHPUnit运行它

git clone git@github.com:OdinsHat/tyre-label-generator.git
cd tyre-label-generator
phpunit tests/

您还可以运行composer脚本analyzefix,其中第一个是Psalm(PHP-Stan的强化版),第二个是PHPCSFixer。

用法

类中实现了多个方法,您可以使用最适合您需求的方法。

1. 生成的HTML图像

此方法使用一组大小相同的图像,并使用内联 CSS将它们叠加在一起以创建所需的完整标签类型。这不是推荐的方式,但这是启动起来最简单的方法。

例如:

$tyre = new Tyre('F', 'E', 71, 2);
$label = new Label($tyre);
echo $label->genHtmlLabel();

生成的HTML将类似于以下内容

<div style="position:relative">
    <img src="/images/label/bg.png" alt="EU tyre Label" style="position:relative; z-index:0;" />
    <img src="/images/label/fuel_f.png" style="position:absolute;z-index:1" />
    <img src="/images/label/wet_e.png" style="position:absolute;z-index:1" />
    <img src="/images/label/db_71.png" style="position:absolute;z-index:1" />
    <img src="/images/label/sw_2.png" style="position:absolute;z-index:1" />
</div>

2. 生成的HTML/CSS图像

这将要求您将提供的CSS文件tyre-label.css包含在您的页面中,或者将其样式添加到您自己的样式表中。

$tyre = new Tyre('F', 'E', 71, 2);
$label = new Label($tyre, 300, '/imgs');
echo $label->genCssLabel();
<div class="tyre-label-container">
    <img src="/images/label/bg.png" alt="EU Tyre Label" class="tyre-label-base" />
    <img src="/images/label/fuel_f.png" class="tyre-label-overlay" />
    <img src="/images/label/wet_e.png" class="tyre-label-overlay" />
    <img src="/images/label/db_71.png" class="tyre-label-overlay" />
    <img src="/images/label/sw_2.png" class="tyre-label-overlay" />
</div>

3. 生成的PNG图像

$tyre = new Tyre('F', 'E', 71, 2,280,"images/");
$label = new Label($tyre, 250); 
$image = $label->genPngLabel();
header('Content-type: image/png');
imagepng($image);
imagedestroy($image);
die();