Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

PHP library for color manipulation and conversion.

License

NotificationsYou must be signed in to change notification settings

ozdemirburak/iris

Repository files navigation

Latest Version on PackagistSoftware LicenseBuild StatusTotal Downloads

PHP library for color manipulation and conversion.

For PHP 7.3 or PHP 7.4, use version ^2.5, and check thephp-7 branch.

Install

Via Composer

$ composer require ozdemirburak/iris

Usage

Hex

useOzdemirBurak\Iris\Color\Hex;$hex =newHex('#ff00ff');// same as new Hex('fuchsia');echo$hex->red();// ffecho$hex->green();// 00echo$hex->blue();// ffecho$hex->values();// ['ff', '00', 'ff']$hexa =$hex->toHexa();// \OzdemirBurak\Iris\Color\Hexa('ff00ffff')$hsl =$hex->toHsl();// \OzdemirBurak\Iris\Color\Hsl('300,100,50')$hsla =$hex->toHsla();// \OzdemirBurak\Iris\Color\Hsla('300,100,50,1.0')$hsv =$hex->toHsv();// \OzdemirBurak\Iris\Color\Hsv('300,100,100')$rgb =$hex->toRgb();// \OzdemirBurak\Iris\Color\Rgb('255,0,255')$rgba =$hex->toRgba();// \OzdemirBurak\Iris\Color\Rgba('255,0,255,1.0')echo$hex;// #ff00ff

Hexa (hex with alpha value)

useOzdemirBurak\Iris\Color\Hexa;$hexa =newHexa('#ff00ff4c');echo$hexa->red();// ffecho$hexa->green();// 00echo$hexa->blue();// ffecho$hexa->alpha();// 0.3 - as a float for compatibility with the other conversionsecho$hexa->values();// ['ff', '00', 'ff', 0.3]$hsl =$hexa->toHsl();// \OzdemirBurak\Iris\Color\Hsl('300,100,50')$hsla =$hexa->toHsla();// \OzdemirBurak\Iris\Color\Hsla('300,100,50,0.3')$hsv =$hexa->toHsv();// \OzdemirBurak\Iris\Color\Hsv('300,100,100')$rgb =$hexa->toRgb();// \OzdemirBurak\Iris\Color\Rgb('255,0,255')$rgba =$hexa->toRgba();// \OzdemirBurak\Iris\Color\Rgba('255,0,255,0.3')echo$hexa;// #ff00ff4c

HSL

useOzdemirBurak\Iris\Color\Hsl;$hsl =newHsl('hsl(300,100%,50%)');// same as new Hsl('fuchsia');echo$hsl->hue();// 300echo$hsl->saturation();// 100echo$hsl->lightness();// 50$values =$hsl->values();// [300, '100%', '50%']$normalizedValues =$hsl->valuesInUnitInterval();// [300/360, 100/100, 50/100]$hex =$hsl->toHex();// \OzdemirBurak\Iris\Color\Hex('ff00ff')$hexa =$hsl->toHexa();// \OzdemirBurak\Iris\Color\Hexa('ff00ffff')$hsv =$hsl->toHsv();// \OzdemirBurak\Iris\Color\Hsv('300,100,100')$rgb =$hsl->toRgb();// \OzdemirBurak\Iris\Color\Rgb('255,0,255')$rgba =$hsl->toRgba();// \OzdemirBurak\Iris\Color\Rgba('255,0,255,1.0')echo$hsl;// hsl(300,100%,50%)

HSLA

useOzdemirBurak\Iris\Color\Hsla;$hsla =newHsla('hsla(150,100%,50%,0.3)');echo$hsla->hue();// 150echo$hsla->saturation();// 100echo$hsla->lightness();// 50echo$hsla->alpha();// 0.3$values =$hsla->values();// [150, '100%', '50%', 0.3]$hex =$hsla->toHex();// \OzdemirBurak\Iris\Color\Hex('b2ffd8')$hex =$hsla->toRgba();// \OzdemirBurak\Iris\Color\Rgba('0,255,128,0.3')$hexa =$hsla->toHexa();// \OzdemirBurak\Iris\Color\Hexa('ff00ff4c')echo$hsla;// hsla(150,100%,50%,0.3)

HSV

useOzdemirBurak\Iris\Color\Hsv;$hsv =newHsv('hsv(300,100%,100%)');// same as new Hsv('fuchsia');echo$hsv->hue();// 300echo$hsv->saturation();// 100echo$hsv->value();// 100$values =$hsv->values();// [100, '100%', '100%']$normalizedValues =$hsv->valuesInUnitInterval();// [300/360, 100/100, 100/100]$hex =$hsv->toHex();// \OzdemirBurak\Iris\Color\Hex('ff00ff')$hexa =$hsv->toHexa();// \OzdemirBurak\Iris\Color\Hexa('ff00ffff')$hsl =$hsv->toHsl();// \OzdemirBurak\Iris\Color\Hsl('300,100,50')$hsla =$hsv->toHsla();// \OzdemirBurak\Iris\Color\Hsla('300,100,50,1.0')$hsv =$hsv->toHsv();// \OzdemirBurak\Iris\Color\Hsv('300,100,100')$rgb =$hsv->toRgb();// \OzdemirBurak\Iris\Color\Rgb('255,0,255')$rgba =$hsv->toRgba();// \OzdemirBurak\Iris\Color\Rgba('255,0,255,1.0')echo$hsv;// hsl(300,100%,100%)

RGB

useOzdemirBurak\Iris\Color\Rgb;$rgb =newRgb('rgb(255, 0, 255)');// same as new Rgb('fuchsia');echo$rgb->red();// 255echo$rgb->green();// 0echo$rgb->blue();// 255$values =$rgb->values();// [255, 0, 255]$hex =$rgb->toHex();// \OzdemirBurak\Iris\Color\Hex('ff00ff')$hexa =$rgb->toHexa();// \OzdemirBurak\Iris\Color\Hexa('ff00ffff')$hsl =$rgb->toHsl();// \OzdemirBurak\Iris\Color\Hsl('300,100,50')$hsla =$rgb->toHsla();// \OzdemirBurak\Iris\Color\Hsla('300,100,50,1.0')$hsv =$rgb->toHsv();// \OzdemirBurak\Iris\Color\Hsv('300,100,100')$rgb =$rgb->toRgb();// \OzdemirBurak\Iris\Color\Rgb('255,0,255')$rgba =$rgb->toRgba();// \OzdemirBurak\Iris\Color\Rgba('255,0,255,1.0')echo$rgb;// rgb(255,0,255)

RGBA

useOzdemirBurak\Iris\Color\Rgba;$rgba =newRgba('rgba(93,111,222,0.33)');echo$rgba->red();// 93echo$rgba->green();// 111echo$rgba->blue();// 222echo$rgba->alpha();// 0.33,$hex =$rgba->background((newHex('ccc'))->toRgb())->toHex();// \OzdemirBurak\Iris\Color\Hex('a7add1')$hexa =$rgba->toHexa();// \OzdemirBurak\Iris\Color\Hexa('a7add154')echo$rgba;// rgba(127,127,127,0.5)

CMYK

useOzdemirBurak\Iris\Color\Cmyk;$cmyk =newCmyk('cmyk(0,100,0,0)');echo$cmyk->cyan();// 0echo$cmyk->magenta();// 100echo$cmyk->yellow();// 0echo$cmyk->black();// 0$values =$cmyk->values();// [0, 100, 0, 0]$hex =$cmyk->toHex();// OzdemirBurak\Iris\Color\Hex('ff00ff')$hexa =$cmyk->toHexa();// OzdemirBurak\Iris\Color\Hexa('ff00ffff')$hsl =$cmyk->toHsl();// OzdemirBurak\Iris\Color\Hsl('300,100,50')$hsla =$cmyk->toHsla();// OzdemirBurak\Iris\Color\Hsla('300,100,50,1.0')$hsv =$cmyk->toHsv();// OzdemirBurak\Iris\Color\Hsv('300,100,100')$rgb =$cmyk->toRgb();// OzdemirBurak\Iris\Color\Rgb('255,0,255')$rgba =$cmyk->toRgba();// OzdemirBurak\Iris\Color\Rgba('255,0,255,1.0')echo$cmyk;// cmyk(0,100,0,0)

Via Factory

If you do not know what the color string will be (for example, you're getting it from a group of rows from a database),then you can try using Factory to instantiate an appropriate color class:

useOzdemirBurak\Iris\Color\Factory;$color = Factory::init('rgba(93,111,222,0.33)');echo$color->red();// 93echo$color->green();// 111echo$color->blue();// 222echo$color->alpha();// 0.33

Color Cloning

You can clone a color object to make a copy and modify it as needed.

useOzdemirBurak\Iris\Color\Hex;$original =newHex('#b2b2b2');$cloned =$original->clone()->toHexa()->alpha(0.5);// OzdemirBurak\Iris\Color\Hexa('#b2b2b27f')

Color Manipulation

Saturation

Saturate or desaturate by a percent.

echo (newHsl('90,80%,50%'))->saturate(20)->toHex();// #80ff00echo (newHsl('90, 80%, 50%'))->desaturate(20)->toRgb();// rgb(128,204,51)echo (newHex('#80cc33'))->grayscale();// #808080, same as desaturate 100

Lightness

Lighten, darken or brighten by a percent.

$hex =newHex('#333');echo$hex->lighten(20);// #666666echo$hex->darken(20);// #000000echo$hex->brighten(20);// #666666

Spin

Spin by an angle [-360, 360]

$hex = (newHsl('10,90%,50'))->spin(30)->toHex();echo$hex;// #f2a60d

Mix

Mix by a percent.

$hex =newHex('#000');echo$hex->mix(newHex('#fff'),50);// #808080

Tint

Mix color with white by a percent.

$hex =newHex('#000');echo$hex->tint(50);// #808080

Shade

Mix color with black by a percent.

$hex =newHex('#FFF');echo$hex->shade(50);// #808080

Fade

Set the absolute opacity of a color by a percent.

$hsl =newHsl('90,90,50');echo$hsl->fade(10);// hsla(90,90%,50%,0.1)$rgb =newRgb('128,242,13');echo$rgb->fade(10);// rgba(128,242,13,0.1)

FadeIn

Increase the opacity of a color by a percent.

$hsla =newHsla('90,90,50,0.3');echo$hsla->fadeIn(10);// hsla(90,90%,50%,0.4)$rgba =newRgba('128,242,13,0.3');echo$rgba->fadeIn(10);// rgba(128,242,13,0.4)

FadeOut

Decrease the opacity of a color by a percent.

$hsla =newHsla('90,90,50,0.3');echo$hsla->fadeOut(10);// hsla(90,90%,50%,0.2)$rgba =newRgba('128,242,13,0.3');echo$rgba->fadeOut(10);// rgba(128,242,13,0.2)

Is light or dark

Determine if color is dark or light color.

$hex =newHex('#000');echo$hex->isLight();// falseecho$hex->isDark();// true

Change log

Please seeCHANGELOG for more information what has changed recently.

Testing

$ composertest

Contributing

Please seeCONTRIBUTING for details.

Credits

License

The MIT License (MIT). Please seeLicense File for more information.


[8]ページ先頭

©2009-2025 Movatter.jp