beryllium/iceus

Sculpin 基站缩略图生成器

2.2.0 2023-10-07 05:37 UTC

This package is auto-updated.

Last update: 2024-09-07 07:37:24 UTC


README

Build Status SensioLabsInsight

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 installsculpin 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 库易于使用。