bheller/images-generator

Faker 的占位符图片生成器

1.0.1 2016-03-03 08:40 UTC

This package is not auto-updated.

Last update: 2024-09-14 18:58:21 UTC


README

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

Sample image

Build Status

此项目的目标是什么?

Faker 是一个惊人的工具,可以快速生成看起来真实的假数据。您可以参考其文档以了解更多关于它可以做什么的强大功能。

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

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

images-generator 正是为了解决这个问题而出现的。所有图片都是通过您当前的 PHP 设置直接使用 GD 生成的,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) 将返回一个宽度在 600 到 800 像素之间,高度在 400 到 600 像素之间的随机颜色 jpeg 图片,图片上写有随机文字并使用随机颜色!这可以生成类似这样的图片

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 存储库中所述。