mo3golom / wonder-stories
从源数据生成故事的工具
1.0.3
2021-08-30 15:58 UTC
Requires
- php: ^8.0
- intervention/image: ^2.6
- league/flysystem: 1.1.5
- nesbot/carbon: ^2.52
- php-ffmpeg/php-ffmpeg: ^0.18.0
- vlucas/valitron: ^1.4
Requires (Dev)
- phpunit/phpunit: ^9.5
- slevomat/coding-standard: ^7.0
- spatie/ray: ^1.28
- squizlabs/php_codesniffer: ^3.6
- vimeo/psalm: ^4.8
This package is auto-updated.
Last update: 2024-09-29 06:03:07 UTC
README
用于生成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)。有关更多信息,请参阅许可证文件。