PHP Classes

File: example/colorMatrix.php

Recommend this page to a friend!
  Classes of Edgar Asatryan   PHP SVG Magick Library   example/colorMatrix.php   Download  
File: example/colorMatrix.php
Role: Example script
Content type: text/plain
Description: Example script
Class: PHP SVG Magick Library
Compose vectorial graphics in SVG format
Author: By
Last change:
Date: 7 years ago
Size: 1,662 bytes
 

Contents

Class file image Download
<?php

use nstdio\svg\container\Defs;
use
nstdio\svg\container\G;
use
nstdio\svg\container\SVG;
use
nstdio\svg\filter\ColorMatrix;
use
nstdio\svg\gradient\UniformGradient;
use
nstdio\svg\shape\Rect;
use
nstdio\svg\text\Text;
use
nstdio\svg\util\KeyValueWriter;

require_once
__DIR__ . '/../vendor/autoload.php';

$saturate = isset($_GET['sat']) ? $_GET['sat'] : 40;
$hueRot = isset($_GET['rot']) ? $_GET['rot'] : 90;

$svg = new SVG('10cm', '5cm');
$svg->getElement()->setAttribute('viewBox', "0 0 500 500");

$defs = new Defs($svg);

$linearGradient = UniformGradient::gradient($defs, ['#ff00ff', '#88ff88', '#2020ff', '#d00000'], null);
KeyValueWriter::apply($linearGradient->getElement(), ['gradientUnits' => 'userSpaceOnUse', 'x1' => 0, 'y1' => 0, 'x2' => $svg->getElement()->getAttribute('width'), 'y2' => 0,]);

$defs->append($linearGradient);

$g = new G($svg);
$g->fontFamily = 'Verdana';
$g->fontSize = 75;
$g->fontWeight = "bold";
$g->fill = "url(#$linearGradient->id)";

$rect = new Rect($svg, 20, 500, 0, 0);

$svg->append($g->append($rect));
$text = new Text($g, "Saturate" . $saturate);
$text->x = 0;
$text->y = 190;

$cMatrix = ColorMatrix::saturate($defs, $saturate);

$text->filter = "url(#$cMatrix->id)";
$g->append($text);

$hueRotate = ColorMatrix::hueRotate($defs, $hueRot);

$text2 = new Text($g, "HueRotate" . $hueRot);
$text2->x = 0;
$text2->y = 290;
$text2->filter = "url(#$hueRotate->id)";

$g->append($text2);

$lum = ColorMatrix::luminanceToAlphaWithComposite($defs);

$text3 = new Text($g, "Luminance");
$text3->x = 0;
$text3->y = 390;
$text3->filter = "url(#$lum->id)";

$g->append($text3);

$svg->append($defs);
echo
$svg->draw();