![]() |
[Library] PAWN Colour Manipulation - Printable Version + open.mp forum (https://forum.open.mp) -- Forum: SA-MP (https://forum.open.mp/forumdisplay.php?fid=3) --- Forum: Releases (https://forum.open.mp/forumdisplay.php?fid=13) ---- Forum: Libraries (https://forum.open.mp/forumdisplay.php?fid=31) ---- Thread: [Library] PAWN Colour Manipulation (/showthread.php?tid=284) |
PAWN Colour Manipulation - kristo - 2019-04-16 PAWN Colour Manipulation 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. RE: PAWN Colour Manipulation - Y_Less - 2019-04-20 Do you remember the link to the original article on the improved interpolation algorithm? RE: PAWN Colour Manipulation - kristo - 2019-04-20 (2019-04-20, 11:16 AM)Y_Less Wrote: Do you remember the link to the original article on the improved interpolation algorithm? I presume you mean this one? http://entropymine.com/imageworsener/srgbformula/ Also, if anyone's interested, here are the other resources I used for reference when?creating this library: http://blog.johnnovak.net/2016/09/21/what-every-coder-should-know-about-gamma/ https://stackoverflow.com/questions/596216/formula-to-determine-brightness-of-rgb-color/13558570#13558570 And the person who wrote the first article has a few more interesting ones here: http://entropymine.com/imageworsener/ RE: PAWN Colour Manipulation - Y_Less - 2019-04-20 Actually I meant this one: http://blog.johnnovak.net/2016/09/21/what-every-coder-should-know-about-gamma/ But you linked it anyway, so thanks. |