PAWN Colour Manipulation
This library provides a number of easy-to-use colour manipulation functions for PAWN.
Installation
Simply install to your project:
Include in your code and begin using the library:
Testing
To test, simply run the package:
There is also a separate test script (samp-grayscale-bitmap) that unfortunately doesn?t work yet due to a bug in samp-bitmapper.
Functions
Extracts the RGB(A) components from a colour code.
Extracts an individual colour component from a colour code and returns it.
Modifies an individual component of an existing colour and returns the new colour.
Creates a colour code from RGB(A) components.
Converts a colour from one colour mode to another. Alpha should be specified when converting from RGB, otherwise 0xFF (fully non-transparent) is used.
Interpolates two colours. amount must be in the range 0.0 - 1.0. The larger amount is, the closer the returned colour is to colour2.
Returns the brightness of a colour.
Darkens a colour by interpolating it with the black colour.
Lightens a colour by interpolating it with the white colour.
Returns the grayscale equivalent of a colour.
Converts a binary colour component value to a fractional value.
Converts a fractional colour component value to a binary value.
Adds sRGB gamma correction to a colour component.
Removes the sRGB gamma correction from a colour component.
Definitions
Colour modes
COLOUR_MODE_RGBA - The most common colour format in SA-MP: used by SendClientMessage, textdraws, etc.
COLOUR_MODE_ARGB- Colour format used by SetObjectMaterial, SetObjectMaterialText and SetPlayerAttachedObject.
COLOUR_MODE_RGB - Colour format used by embedded colours, probably the most common colour format outside of SA-MP, most notably in webpages.
Colour components
COLOUR_COMPONENT_R - Red
COLOUR_COMPONENT_G - Green
COLOUR_COMPONENT_B - Blue
COLOUR_COMPONENT_A - Alpha
Notes
Both British and American spellings (color/colour, gray/grey) are supported for everything noted above.
This library provides a number of easy-to-use colour manipulation functions for PAWN.
Installation
Simply install to your project:
Code:
sampctl package install kristoisberg/pawn-colour-manipulation
Include in your code and begin using the library:
PHP Code:
#include <colour-manipulation>
Testing
To test, simply run the package:
Code:
sampctl package run
There is also a separate test script (samp-grayscale-bitmap) that unfortunately doesn?t work yet due to a bug in samp-bitmapper.
Functions
PHP Code:
GetColourComponents(colour, &Float:r, &Float:g, &Float:b, &Float:a = 1.0, ColourMode:mode = COLOUR_MODE_RGBA)
Extracts the RGB(A) components from a colour code.
PHP Code:
Float:GetColourComponent(colour, ColourComponent:component, ColourMode:mode = COLOUR_MODE_RGBA)
Extracts an individual colour component from a colour code and returns it.
PHP Code:
SetColourComponent(colour, ColourComponent:component, Float:value, ColourMode:mode = COLOUR_MODE_RGBA)
Modifies an individual component of an existing colour and returns the new colour.
PHP Code:
GetColourCode(Float:r, Float:g, Float:b, Float:a = 1.0, ColourMode:mode = COLOUR_MODE_RGBA)
Creates a colour code from RGB(A) components.
PHP Code:
ConvertColour(colour, ColourMode:from, ColourMode:to, Float:alpha = 1.0)
Converts a colour from one colour mode to another. Alpha should be specified when converting from RGB, otherwise 0xFF (fully non-transparent) is used.
PHP Code:
InterpolateColours(colour1, colour2, Float:amount, ColourMode:mode = COLOUR_MODE_RGBA)
Interpolates two colours. amount must be in the range 0.0 - 1.0. The larger amount is, the closer the returned colour is to colour2.
PHP Code:
Float:GetColourBrightness(colour, ColourMode:mode = COLOUR_MODE_RGBA)
Returns the brightness of a colour.
PHP Code:
DarkenColour(colour, Float:amount, ColourMode:mode = COLOUR_MODE_RGBA)
Darkens a colour by interpolating it with the black colour.
PHP Code:
LightenColour(colour, Float:amount, ColourMode:mode = COLOUR_MODE_RGBA)
Lightens a colour by interpolating it with the white colour.
PHP Code:
GrayscaleColour(colour, ColourMode:mode = COLOUR_MODE_RGBA)
Returns the grayscale equivalent of a colour.
PHP Code:
Float:GetColourComponentFractValue(value)
Converts a binary colour component value to a fractional value.
PHP Code:
GetColourComponentBinaryValue(Float:value)
Converts a fractional colour component value to a binary value.
PHP Code:
Float:AddColourComponentGammaCor(Float:value)
Adds sRGB gamma correction to a colour component.
PHP Code:
Float:RemoveColourComponentGammaCor(Float:value)
Removes the sRGB gamma correction from a colour component.
Definitions
Colour modes
COLOUR_MODE_RGBA - The most common colour format in SA-MP: used by SendClientMessage, textdraws, etc.
COLOUR_MODE_ARGB- Colour format used by SetObjectMaterial, SetObjectMaterialText and SetPlayerAttachedObject.
COLOUR_MODE_RGB - Colour format used by embedded colours, probably the most common colour format outside of SA-MP, most notably in webpages.
Colour components
COLOUR_COMPONENT_R - Red
COLOUR_COMPONENT_G - Green
COLOUR_COMPONENT_B - Blue
COLOUR_COMPONENT_A - Alpha
Notes
Both British and American spellings (color/colour, gray/grey) are supported for everything noted above.