beryllium / iceus
Sculpin 基站缩略图生成器
Requires
- php: ^7.4||^8.0
- imanee/imanee: ^1.2
- symfony/filesystem: ^5.4
Requires (Dev)
- mikey179/vfsstream: ^1.6
- phpunit/phpunit: ^9.4
- symfony/config: ^5.4
- symfony/dependency-injection: ^5.4
- symfony/http-kernel: ^5.4
- twig/twig: ^2.5||^3.0
This package is auto-updated.
Last update: 2024-09-07 07:37:24 UTC
README
Icelus 是一个快速简单的 Sculpin 基站和博客的缩略图生成器。
Icelus,又称“缩放 Sculpin”,是一种主要发现于北太平洋的小型鱼类。
要求
Icelus 需要
- PHP 5.4+
- Imagick 扩展(可通过 apt-get、pecl 或 yum 安装)
- Imanee 库 (imanee.io - 由 Composer 自动获取)
安装
如果您使用基于 Phar 的 Sculpin 工具,可以在项目根目录中创建或修改一个 sculpin.json 文件,并将 "beryllium/icelus"
添加到 "require"
块中。然后,运行 sculpin install
或 sculpin update
以获取所需的依赖项。
{
"require": {
"beryllium/icelus": "*"
}
}
或者,如果您使用基于 Composer 的 sculpin 安装,只需运行 composer require beryllium/icelus
即可开始。
安装库后,您必须告诉 Sculpin 如何加载它。您可以通过创建或修改一个类似于以下内容的 app/SculpinKernel.php
文件来完成此操作
<?php
class SculpinKernel extends \Sculpin\Bundle\SculpinBundle\HttpKernel\AbstractKernel
{
protected function getAdditionalSculpinBundles()
{
return array(
'Beryllium\Icelus\IcelusBundle',
);
}
}
注意: 类名应该是字符串,而不是对象实例化。(这与 Symfony 2 配置包的方式不同。)
配置
通常不需要额外的配置。如果您想重命名输出子文件夹以保存缩略图(默认为 'yourblog.com/_thumbs'),请将其添加到您的 sculpin_kernel.yml
icelus: prefix: '/_thumbs'
icelus.prefix
: 存储缩略图的 Sculpin 输出目录下的子目录。默认为'/_thumbs'
。
用法
Icelus 在 Twig 中公开了一个 thumbnail
函数,您可以使用它或通过创建 Twig 宏来自定义输出。
thumbnail(image, width, height, crop)
- image (string):
source/
文件夹中图像的相对路径。 - width (int): 像素中的最大宽度
- height (int): 像素中的最大高度
- crop (bool): False 将整个图像适应提供的尺寸。True 将从中心裁剪图像。默认:FALSE
内联示例
<a href="image.jpg"><img src="{{ thumbnail('image.jpg', 100, 100) }}"></a>
宏示例
index.html:
{% import '_macros.html.twig' as m %}
<h1>Gone Fishin'!</h1>
{{ m.small_thumbnail('image.jpg', 'A picture from my fishing trip') }}
_macros.html.twig:
{% macro small_thumbnail(image, caption) %}
<a href="{{ image }}">
<img src="{{ thumbnail(image, 100, 100) }}">
<br>
<em>{{ caption }}</em>
</a>
{% endmacro %}
添加了一个名为 icelus.service
的服务到 Sculpin 依赖注入容器中,您可以在自己的 Sculpin 扩展中使用它。
对于对底层 Imanee 库的原始访问,服务名为 icelus.imanee
。如果您需要深入了解,可以使用 $imanee->getIMResource()
获取 Imagick 实例。
从技术上讲,此扩展也可以用作 Symfony 2 包。这尚未经过测试,但欢迎进行实验。
未来计划
我希望 Icelus 能够公开更多底层 Imanee 库的功能,特别是在水印和将文本绘制到图像方面的功能。Imanee 对动画 GIF 的支持也可能在某些方面具有优势。
我还希望 Icelus 与各种 PHP 框架和工作流程兼容。我已专注于将其作为 Twig 扩展,但它也可以与其他模板系统甚至 Markdown 风格解析器一起工作。
谢谢
特别感谢 Beau Simensen 邀请我加入 Sculpin 组织,以及感谢 Erika Heidi 使 Imanee 库易于使用。