mo3golom/wonder-stories

从源数据生成故事的工具

1.0.3 2021-08-30 15:58 UTC

This package is auto-updated.

Last update: 2024-09-29 06:03:07 UTC


README

Latest Version on Packagist

用于生成Instagram Stories/Reels或抖音视频创意的视频生成服务。

要求

  • php:8.0
  • ffmpeg
  • gd
  • imagick

安装

您可以使用composer安装此包

composer require mo3golom/wonder-stories

使用

基本使用

$background = (new \Mo3golom\WonderStories\DTO\Background())
    ->setWidth(576)
    ->setHeight(1024)
    ->setDuration(7)
    ->setPath('path_to_mp4_video')
;

$block =  (new \Mo3golom\WonderStories\DTO\Block())
        ->setType(
            (new \Mo3golom\WonderStories\DTO\Type())
                ->setId(\Mo3golom\WonderStories\Enum\BlockTypes::TYPE_TEXT)
                ->setSettings([
                    'text' => 'test',
                    'font_color' => '#ffffff',
                    'font_size' => 32,
                    'offset' => 16,
                    'background_enable' => true,
                    'background_color' => '#000000',
                ])
        )
        ->setDuration(5)
        ->setStartAt(0)
        ->setPosition(
            (new \Mo3golom\WonderStories\DTO\Position())
                ->setX(100)
                ->setY(100)
        )
    ;

$creative = (new \Mo3golom\WonderStories\DTO\Creative())
    ->setBlocks([$block])
    ->setBackground($background)
;

$wonderStories = \Mo3golom\WonderStories\Service\WonderStories::make();
echo $wonderStories->createFromCreative($creative);

在创建服务时,也可以传递自己的配置

$wonderStories = \Mo3golom\WonderStories\Service\WonderStories::make([
     'filesystem' => [
        'local' => [
            'root' => './package'
        ],
     ],
     'block_types' => [
            \Mo3golom\WonderStories\Enum\BlockTypes::TYPE_TEXT => [
                'id' => \Mo3golom\WonderStories\Enum\BlockTypes::TYPE_TEXT,
                'name' => 'Текст',
                'processor' => \Mo3golom\WonderStories\Service\Block\TypeProcessors\Text::class,
            ],
            \Mo3golom\WonderStories\Enum\BlockTypes::TYPE_TIMER => [
                'id' => \Mo3golom\WonderStories\Enum\BlockTypes::TYPE_TIMER,
                'name' => 'Таймер',
                'processor' => \Mo3golom\WonderStories\Service\Block\TypeProcessors\Timer::class,
            ],
     ], 
]);
echo $wonderStories->createFromCreative($creative);

块类型

有几种可用的块类型(在DTO Type中设置,使用setId方法)

  • \Mo3golom\WonderStories\Enum\BlockTypes::TYPE_TEXT - 普通多行文本。具有以下设置
[
    'text' => 'test', // отображаемый текст
    'font_color' => '#ffffff', // цвет текста в HEX формате
    'font_size' => 32, // размер текста
    'font_path' => 'path_to_font.ttf', // путь до файла шрифта .ttf
    'offset' => 16, // отступ от краев фона (будет заметно, если отрисовать фон)
    'background_enable' => true, // включить отрисовку фона
    'background_color' => '#000000', // цвет фона
]
  • \Mo3golom\WonderStories\Enum\BlockTypes::TYPE_TIMER - 倒计时计时器。起始数字取决于块持续时间(setDuration)。具有以下设置
[
    'font_color' => '#ffffff', // цвет текста в HEX формате
    'font_size' => 32, // размер текста
    'font_path' => 'path_to_font.ttf', // путь до файла шрифта .ttf
    'offset' => 16, // отступ от краев фона (будет заметно, если отрисовать фон)
    'background_enable' => true, // включить отрисовку фона
    'background_color' => '#000000', // цвет фона
]

许可证

MIT许可证(MIT)。有关更多信息,请参阅许可证文件