tohimi/kirby-magick-extended

在 Kirby 中使 GIF 生效

资助包维护!
tohimi

安装: 15

依赖者: 0

建议者: 0

安全性: 0

星标: 11

关注者: 2

分支: 0

开放问题: 0

类型:kirby-plugin

1.1.0 2023-02-23 23:26 UTC

This package is auto-updated.

Last update: 2024-08-31 00:31:45 UTC


README

Kirby ImageMagick Extended Banner

Kirby ImageMagick 扩展

此插件扩展了 Kirby 内置的 ImageMagick 驱动,增加了处理动画或多层图像的功能。

问题

当将动画图像转换为其他格式时,ImageMagick 会逐帧转换并输出为单独的文件。这不符合 Kirby 的预期,因为 Kirby 需要输出单个图像文件。此插件通过预先检查图像的帧数来解决这个问题,如果目标格式不支持多帧,则仅转换第一帧。它还添加了一个新的选项 frame 来手动指定帧索引。此外,此插件还增加了对 APNG 图像的支持,因为 ImageMagick 默认需要被指示将其视为动画图像。

检测可用的图像帧需要 identify 命令可用,这可以被视为破坏性更改,因此创建了此插件,因为它不太可能合并到 Kirby Core 中以修复各种非常狭窄的边缘情况。

要求

  • Kirby 3.8+
  • PHP 8.0+
  • ImageMagick 7.0+,带有 convertidentify 命令

安装

下载

下载并将此存储库复制到 /site/plugins/kirby-magick-extended

Composer

composer require tobimori/kirby-magick-extended

使用方法

在配置中设置驱动器

// site/config/config.php

return [
  'thumbs.driver' => 'im-extended',
];

启用后,插件将自动检测动画图像,并在目标格式不支持时仅转换第一帧。

使用 frame 选项

// In your template file

<?php if($image = $page->animated()->toFile()) :
  $thumbOptions = [
    'width' => 100,
    'height' => 100,
    'frame' => 0, // specify frame index
    'format' => 'png',
  ]; ?>
  <img src="<?= $image->thumb($thumbOptions)->url() ?>" />
<?php endif ?>

禁用 APNG 检测

// In your template file

<?php if($image = $page->animated()->toFile()) :
  $thumbOptions = [
    'width' => 100,
    'height' => 100,
    'apng' => false, // disable APNG detection
    'format' => 'png',
  ]; ?>
  <img src="<?= $image->thumb($thumbOptions)->url() ?>" />
<?php endif ?>

自定义 identify 二进制路径

// site/config/config.php
return [
  'thumbs' => [
    'identifyBin' => 'identify',
  ],
];

未来?

  • 从 PR 添加单元测试
  • 添加 APNG 支持并自动添加 APNG: 前缀
  • 获得合并到 Kirby Core 的批准 - 跟踪在 PR #4275

致谢

此插件扩展了由 Bastian Allgeier 编写的 Kirby 的 ImageMagick 驱动,许可协议为 MIT 许可协议

许可协议

MIT 许可协议 版权所有 © 2023 Tobias Möritz