ghostff / php-text-to-image
Add text to an existing or new image
Requires
- php: >=7.0.0
- ext-gd: *
This package is auto-updated.
Last update: 2024-10-15 05:37:36 UTC
README
Add text to an existing or new image. PHP >= 7.0
composer require ghostff/php-text-to-image
Usage
$text1 = Text::from('Text One')->color(231, 81, 0); $text2 = Text::from('Text Two')->color(130, 146, 145)->position(260, 35); $text3 = (new Text('Text Three'))->set(150, 0, [0, 0, 252], '', 10, 1, 1, [50, 205, 50]); $text = Text::from('Text!') ->position(170, 150) ->font(20, __DIR__ . '/sweet purple.otf') ->shadow(2, 2, [255]) ->color(255,255, 0) ->rotate(20);
Writing to existing image
{ header("Content-Type: image/png"); echo (new TextToImage(__DIR__ . '/default.png'))->addTexts($text1, $text2, $text3, $text)->render(); } // Or save to a file (new TextToImage(__DIR__ . '/default.png'))->addTexts($text1, $text2, $text3, $text)->render(__DIR__ . '/tmp.png')
Writing to a new image:
{ header("Content-Type: image/png"); echo (new TextToImage())->setDimension(350, 350)->setBackgroundColor(0, 0, 0)->addTexts($text1, $text2, $text3, $text)->render(); } // Or save to a file (new TextToImage())->setDimension(350, 350)->setBackgroundColor(0, 0, 0)->addTexts($text1, $text2, $text3, $text)->render(__DIR__ . '/tmp.png');
TextToImage
Documentations
TextToImage::__construct(string $from = '')
Description: Creates TextToImage instance.
TextToImage::setDimension(int $width, int $height): TextToImage
Description: Set background image dimension. Note: This is not evaluated if $from
argument is passed to the constructor
TextToImage::setBackgroundColor(int $r = 255, int $g = 255, int $b = 255, int $a = 255): TextToImage
Description: Set the background color of created background image. Note: This is not evaluated if $from
argument is passed to the constructor.
TextToImage::addTexts(Text $text, Text ...$texts): TextToImage
Description: Adds text to specified or generated background image.
Multiple text can all be added at once or over steps.
$hello = Text::from('Hello'); $world = Text::from('World')->position(0, 15); $foo = Text::from('Foo')->position(0, 30); $bar = Text::from('Bar')->position(0, 45); $foobar = Text::from('Foobar')->position(0, 60)->color(255, 0, 0); $text_image = new TextToImage(); $text_image->addTexts($hello, $world, $foo); $text_image->addTexts($bar); echo $text_image->setBackgroundColor(0, 0, 0)->addTexts($foobar)->render();
TextToImage::render(string $save_as = null, string $ext = null): string
Description: Renders modified image to a file or return contents.
Text
Documentations
Text::__construct(string $from = '')
or Text::__from(string $text): Text
Description: Creates Text instance.
Text::position(int $x, int $y = 0): Text
Description: Sets the position of specified text on image.
Text::font(int $size, string $path = null): Text
Description: Sets the font/size of specified text.
Text::color(int $r = 255, int $g = 255, int $b = 255, int $a = 255): Text
Description: Sets the color of specified text.
Text::shadow(int $position_x = null, int $position_y = null, array $color = []): Text
Description: Adds shadow to specified text.
Text::from('FooBar')->shadow(1, 1, [0, 0, 255]); // Create Text with half the max opacity Text::from('FooBar')->shadow(1, 1, [0, 0, 255, 255 / 2]);
Text::rotate(float $degrees): Text
Description: Rotates specified text to a specific angle.
Text::update(Closure $closure): Text
Description: Runtime text update.
$text = Text::from('FooBar')->shadow(1, 1, [0, 0, 255]); $text->update(function (TextToImage $text_to_image, Text $text, $image) { // Basic centering of text. $text->position(intval($text_to_image->getHeight() / 2), intval($text_to_image->getWidth() / 2)); });