efrontsa/images-generator

Faker 的占位图生成器

1.0.1 2016-03-03 08:40 UTC

This package is auto-updated.

Last update: 2024-09-04 19:33:28 UTC


README

使用 GDfzaninotto/Faker 生成占位图类型图片

Sample image

Build Status

这个项目的目标是什么?

Faker 是一个神奇的工具,可以快速生成看起来很真实的假数据。您可以参考其文档来了解更多关于它所能做的事情。

Faker 的一项优秀选项是能够使用 LoremPixel 获取漂亮的图片。它工作得很好,但也有一些缺点

  • 由于使用外部数据源,图像生成需要在连接的环境中完成。对于大多数用途来说可能没问题,但如果您需要在没有互联网连接的地方生成数据,可能会成为问题。
  • 此外,由于同样的原因,获取大量图片可能需要非常长的时间,因为它会下载每张图片。如果您想用数百张图片填充数据,可能会出现问题。
  • 最后,LoremPixel 只生成 JPEG 图片,这可能会占用大量的存储空间。

images-generator 正是为了解决这个问题而出现的。所有图片都直接使用您当前的 PHP 配置和 GD(PHP 中图像处理的几乎标准)生成。

images-generator 对于单元测试、集成服务器、固定值和许多其他情况都非常有用...

使用 images-generator 的优势

  • 快速图像生成
  • 无需互联网连接
  • 可以生成 JPEG 和 PNG 图片

使用 images-generator 的缺点

  • 无法生成逼真的图片:这会更复杂(并且更慢)。如果您需要真实内容,现在唯一的选择是坚持使用 LoremPixel 内容。

安装

最简单的方法是使用 composer

composer require bheller/images-generator

或者如果您更喜欢,可以通过修改您的 composer.json 文件,将此行添加到 "require" 部分

"bheller/images-generator": "~1.0"

用法

使用 ImagesGeneratorProvider 类和 Faker 一起生成新图片

<?php
require __DIR__ .'/vendor/autoload.php';

use bheller\ImagesGenerator\ImagesGeneratorProvider;

$faker = Faker\Factory::create();
$faker->addProvider(new ImagesGeneratorProvider($faker));
$image = $faker->imageGenerator();
?>
<img src="<?php echo $image; ?>">

它将在您的临时目录(如果有)内生成一张 640*480 像素的黑色 png 图片,并返回图片的完整路径,例如:'/tmp/13b73edae8443990be1aa8f1a483bc27.png'

参数

imageGenerator() 方法有很多参数。以下是默认值

imageGenerator($dir = null, $width = 640, $height = 480, $format = 'png', $fullPath = true, $text = null, $backgroundColor = null, $textColor = null)

描述

  • $dir: (字符串) 生成图片文件的路径。必须可写。如果省略,则默认为系统临时目录(通常为 Linux 系统上的 /tmp)。
  • $width: (整数) 图片的像素宽度,默认为 640。
  • $height: (整数) 图片的像素高度,默认为 480。
  • $format: (字符串) 输出图片文件的格式,可以是 jpg, jpeg 或 png 的有效值,默认为 png。
  • $fullPath: (布尔值) 如果为 true,则返回生成的文件的完整路径,否则只返回文件名,默认为 true。
  • $text: (字符串) 如果提供,将在图片上输出文本。会尝试使字体大小适应图片大小。默认为null(无文本)。可以使用特殊值,如果设置为true,将返回图片的宽度和高度作为文本(例如:640x480)。
  • $backgroundColor: (字符串) 十六进制颜色值(例如:'#1f1f1f''1f1f1f'),默认为黑色。
  • $textColor: (字符串) 十六进制颜色值(例如:'#ff2222''ff2222'),默认为白色。

示例

  • $faker->imageGenerator(null, 640, 480, 'png', false, true, '#1f1f1f', '#ff2222') 将生成一个640x480的深灰色png图片,并在红色文本“640x480”中返回类似这样的文件名

Sample image

  • $faker->imageGenerator('img', 640, 480, 'png', true, 'Faker', '#0018ff', '#ffd800') 将生成一个640x480的蓝色png图片,其中包含黄色文本“Faker”,并位于您的项目的img目录中,并返回类似这样的完整路径'img/f523f8bec6ed65fb1d63ae8d09850f9c.png'

Sample image

使用Faker的强大功能的一个更复杂的示例

  • $faker->imageGenerator('img', $faker->numberBetween(600, 800), $faker->numberBetween(400, 600), 'jpg', true, $faker->word, $faker->hexColor, $faker->hexColor) 将返回一个随机颜色的jpeg图片,其宽度介于600到800像素之间,高度介于400到600像素之间,随机单词用随机颜色书写!这可能生成如下图片

Sample image

生成器的播种

images-generator不直接使用Faker的播种功能。但您仍然可以使用它来生成不同的参数值。例如,此代码将始终输出相同的绿色图片和相同的文本(dolorum)

$faker->seed(1234);
$image = $faker->imageGenerator('img', $faker->numberBetween(600, 800), $faker->numberBetween(400, 600), 'jpg', true, $faker->word, $faker->hexColor, $faker->hexColor);

Sample image

未来发展

这是第一个版本,它应该适用于大多数用途。但我已经为未来的版本设定了一些目标

  • 添加对ImageMagick和/或GraphicsMagick的支持,以实现更快的图片生成。
  • Nelmio/Alice中添加对images-generator的支持。
  • 添加生成identicon类型图片的能力
  • 添加单元测试

否则,任何建议都受欢迎!您可以分叉此项目并提交您的PR。

测试

目前没有包含单元测试(请参阅未来发展)。

许可证

images-generator是在MIT许可证下发布的。有关详细信息,请参阅捆绑的LICENSE文件。

此项目中包含的Roboto字体文件是在Apache许可证2.0下发布的,如Roboto存储库中所述。