Skip to content
This repository was archived by the owner on Oct 6, 2020. It is now read-only.

kristoisberg/pawn-colour-manipulation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PAWN Colour Manipulation

sampctl

Notice: This repository is not being actively maintained anymore. If anyone wishes to continue the development of the project, please create a fork of the repository and release future versions there.

This library provides a number of easy-to-use colour manipulation functions for PAWN.

Installation

Simply install to your project:

sampctl package install kristoisberg/pawn-colour-manipulation

Include in your code and begin using the library:

#include <colour-manipulation>

Testing

To test, simply run the package:

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

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.

Float:GetColourComponent(colour, ColourComponent:component, ColourMode:mode = COLOUR_MODE_RGBA)

Extracts an individual colour component from a colour code and returns it.

SetColourComponent(colour, ColourComponent:component, Float:value, ColourMode:mode = COLOUR_MODE_RGBA)

Modifies an individual component of an existing colour and returns the new colour.

GetColourCode(Float:r, Float:g, Float:b, Float:a = 1.0, ColourMode:mode = COLOUR_MODE_RGBA)

Creates a colour code from RGB(A) components.

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.

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.

Float:GetColourBrightness(colour, ColourMode:mode = COLOUR_MODE_RGBA)

Returns the brightness of a colour.

DarkenColour(colour, Float:amount, ColourMode:mode = COLOUR_MODE_RGBA)

Darkens a colour by interpolating it with the black colour.

LightenColour(colour, Float:amount, ColourMode:mode = COLOUR_MODE_RGBA)

Lightens a colour by interpolating it with the white colour.

GrayscaleColour(colour, ColourMode:mode = COLOUR_MODE_RGBA)

Returns the grayscale equivalent of a colour.

Float:GetColourComponentFractValue(value)

Converts a binary colour component value to a fractional value.

GetColourComponentBinaryValue(Float:value)

Converts a fractional colour component value to a binary value.

Float:AddColourComponentGammaCor(Float:value)

Adds sRGB gamma correction to a colour component.

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.

About

Library providing numerous colour manipulation functions for the PAWN language.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages