bheller / images-generator
Faker 的占位符图片生成器
Requires
- php: >=5.3.0
- fzaninotto/faker: ~1.4
Requires (Dev)
This package is not auto-updated.
Last update: 2024-09-14 18:58:21 UTC
README
使用 GD 为 fzaninotto/Faker 生成占位符类型的图片
此项目的目标是什么?
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',并返回类似这样的文件名
$faker->imageGenerator('img', 640, 480, 'png', true, 'Faker', '#0018ff', '#ffd800')
将生成一个 640x480 的蓝色 png 图片,图片内写有黄色文字 'Faker',并保存在项目中的img
目录下,并返回类似这样的完整路径'img/f523f8bec6ed65fb1d63ae8d09850f9c.png'
使用 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 图片,图片上写有随机文字并使用随机颜色!这可以生成类似这样的图片
种子生成器
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);
未来开发
这是第一个版本,它应该适用于大多数用途。但我已经为未来的版本设定了一些目标
- 添加对 ImageMagick 和/或 GraphicsMagick 的支持,以加快图片生成速度。
- 在 Nelmio/Alice 中添加对 images-generator 的支持。
- 添加生成 identicon 类型图片的能力
- 添加单元测试
除此之外,任何建议都受欢迎!您可以分支此项目并提交您的 PR。
测试
目前没有包含单元测试(见 未来开发)。
许可证
images-generator 在 MIT 许可证下发布。有关详细信息,请参阅捆绑的 LICENSE 文件。