1. Go to this page and download the library: Download talesoft/phim library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
talesoft / phim example snippets
use Phim\Color;
//By name
Color::get('red'); //RgbColor(255,0,0)
Color::get(Color::MAROON); //RgbColor(128, 0, 0)
//By hex string
Color::get('#00ff00'); //RgbColor(0, 255, 0)
Color::get('#00f'); //RgbColor(0, 0, 255)
Color::get('#000a'); //RgbaColor(0, 0, 0, 0.1)
//By integer
Color::get(0x00ff00); //RgbColor(0, 255, 0)
Color::get(0x00ff00ff); //RgbaColor(0, 255, 0, 1.0)
//By function literals
Color::get('rgb(14, 24, 100)'); //RgbColor(14, 24, 100)
Color::get('hsl(120, .5, 1.0)'); //HslColor(120, 0.5, 1.0)
Color::get('lab(50, 40, 22)'); //LabColor(50, 40, 22)
//Percent-values are allowed and will scale automatically
Color::get('rgba(50%, 100, 20%, 50%)'); //RgbaColor(127.5, 100, 51, 0.5)
Color::get('hsl(50%, 50%, 1.0)'); //HslColor(180, 0.5, 1.0)
//You can also just create them manually (better performance)
use Phim\Color\RgbColor;
use Phim\Color\HslaColor;
$myRgbColor = new RgbColor(0, 100, 0);
$myHslaColor = new HslaColor(120, .5, .1, 1.0);
$lightTurquoise = Color::get('blue')
->toRgb()
->setGreen(50) //Mix some green in
->toHsl()
->setLightness(.6) //Make it lighter
->toAlpha()
->setAlpha(.4) //Add 40% transparency
->toRgba(); //Make sure it's an RGBA color in the end
echo $lightTurquoise; //Will print `rgba(50,90,255,0.4)`
use Phim\Color;
//Lightening and darkening (Added, not multiplied)
Color::lighten($color, .4);
Color::darken($color, .2);
//Get the complementary color (180° rotated hue)
Color::complement($color);
//Convert to grayscale
Color::grayscale($color);
//Fade in or out (Added, not multiplied)
Color::fade($color, .1);
Color::fade($color, -.1);
//Mix two colors
Color::mix($color, $mixColor);
//Inverse a color
Color::inverse($color);
//Saturate/Desaturate
Color::saturate($color, .4);
Color::desaturate($color, .2);
//Get the hue range the color resides in (basically, "what base color is this color"?)
//Supported hue ranges are: RED, YELLOW, GREEN, CYAN, BLUE and MAGENTA.
Color::getColorHueRange(Color::get('rgba(80, 0, 0)')); //Color::HUE_RANGE_RED
//Gets the hexadecimal representation of a color.
//Notice that it will turn an Alpha-color into a 4-channel hexadecimal string, because it can also parse them.
//If you want to use the hex value in CSS or HTML, use `toRgb()` on the color before to strip the alpha channel
Color::toHexString($color);
//Gets the integer representation of a color (including support for alpha channel)
Color::toInt($color);
//Get the name of a color. Many colors don't have names, it will return a hex-representation in this case
Color::toName($color);
$red = Color::get('red');
foreach ($otherColors as $otherColor) {
//Using a tolerance of 2, so the maximum difference between the colors is 2
if (Color::equals($red, $otherColor, 2))
echo "Well, this is almost the same color!";
}
use Phim\Color\Palette;
$palette = Palette::merge($somePalette, $someOtherPalette);
use Phim\Color\Palette;
use Phim\ColorInterface;
//Filter all colors that have a lightness below .4
$palette = Palette::filter(function(ColorInterface $color) {
return $color->getHsl()->getLightness() >= .4;
});
use Phim\Color\Palette;
//Would only yield colors that have a red-ish hue
$palette = Palette::filterByHueRange($palette, Color::HUE_RANGE_RED);
use Phim\Color\Palette;
//Colors would need to have a difference of at least 4 to all other colors
//in the palette in order to be put in the result collection.
$palette = Palette::filterSimilarColors($palette, 4);
use Phim\Color\Scheme\ComplementaryScheme;
$colors = new ComplementaryScheme($baseColor); //2 colors
use Phim\Color\Scheme\AnalogousScheme;
$colors = new AnalogousScheme($baseColor); //3 colors
use Phim\Color\Scheme\TriadicScheme;
$colors = new TriadicScheme($baseColor); //3 colors
use Phim\Color\Scheme\SplitComplementaryScheme;
$colors = new SplitComplementaryScheme($baseColor); //3 colors
use Phim\Color\Scheme\TetradicScheme;
$colors = new TetradicScheme($baseColor); //4 colors
use Phim\Color\Scheme\SquareScheme;
$colors = new SquareScheme($baseColor); //4 colors
use Phim\Color\Scheme\NamedMonochromaticScheme;
$colors = new NamedMonochromaticScheme($baseColor, .3); //7 colors
$colors->getDarkestShade();
$colors->getDarkerShader();
$colors->getDarkShade();
$colors->getBaseColor();
$colors->getLightTint();
$colors->getLighterTint();
$colors->getLightestTint();
use Phim\Color\Scheme\HueRotationScheme;
$colors = new HueRotationScheme($baseColor, 5, 5); //5 colors, +5° hue per color
use Phim\Color\Scheme\TintScheme;
$colors = new TintScheme($baseColor, 6, .3); //6 colors, +.3 lightness per color
use Phim\Color\Scheme\ShadeScheme;
$colors = new ShadeScheme($baseColor, 6, .3); //6 colors, -.3 lightness per color
use Phim\Color\Scheme\ToneScheme;
$colors = new ToneScheme($baseColor, 6, .3); //6 colors, -.3 saturation per color
Palette::toHtml($myPalette);
namespace Phim\Color\Scheme;
use Phim\Color;
use Phim\ColorInterface;
class MyCustomScheme extends Color\SchemeBase
{
protected function generate(ColorInterface $baseColor)
{
//Generates the passed base-color with 5 different lightness values
yield $baseColor->toHsl()->setLightness(.1);
yield $baseColor->toHsl()->setLightness(.2);
yield $baseColor->toHsl()->setLightness(.3);
yield $baseColor->toHsl()->setLightness(.4);
yield $baseColor->toHsl()->setLightness(.5);
}
}
namespace Phim\Color\Scheme;
use Phim\Color;
use Phim\ColorInterface;
class MyCustomContinousScheme extends Color\Scheme\ContinousSchemeBase
{
protected function generateStep(ColorInterface $baseColor, $i, $step)
{
//Does the same as above, but both, the amount and step-value can be passed to the constructor
return Color::lighten($baseColor, $i * $step);
}
}
$colors = [Color::RED, Color::BLUE, Color::GREEN, Color::YELLOW];
$palette = new Palette();
foreach ($colors as $color) {
//Add the tetradic scheme for each color
$palette = Palette::merge($palette, new TetradicScheme($color));
}
//Only take blue-ish colors
$palette = Palette::filterByHueRange($palette, Color::HUE_RANGE_BLUE);
//Avoid similar colors
$palette = Palette::filterSimilarColors($palette, 8);
//Print a nice HTML representation with 4 columns of the palette for debugging
Palette::toHtml($palette, 4);