love.math.colorFromBytes

Available since LÖVE 11.3
This function is not supported in earlier versions.

Converts a color from 0..255 to 0..1 range.

Function

Synopsis

r, g, b, a = love.math.colorFromBytes( rb, gb, bb, ab )

Arguments

number rb
Red color component in 0..255 range.
number gb
Green color component in 0..255 range.
number bb
Blue color component in 0..255 range.
number ab (nil)
Alpha color component in 0..255 range.

Returns

number r
Red color component in 0..1 range.
number g
Green color component in 0..1 range.
number b
Blue color component in 0..1 range.
number a (nil)
Alpha color component in 0..1 range or nil if alpha is not specified.

Notes

Here's implementation for 11.2 and earlier.

function love.math.colorFromBytes(r, g, b, a)
	if type(r) == "table" then
		r, g, b, a = r[1], r[2], r[3], r[4]
	end
	r = clamp01(floor(r + 0.5) / 255)
	g = clamp01(floor(g + 0.5) / 255)
	b = clamp01(floor(b + 0.5) / 255)
	a = a ~= nil and clamp01(floor(a + 0.5) / 255) or nil
	return r, g, b, a
end

Where clamp01 is defined as follows

local function clamp01(x)
	return math.min(math.max(x, 0), 1)
end


Example

local function setColorHEX(rgba)
--	setColorHEX(rgba)
--	where rgba is string as "#336699cc"
	local rb = tonumber(string.sub(rgba, 2, 3), 16) 
	local gb = tonumber(string.sub(rgba, 4, 5), 16) 
	local bb = tonumber(string.sub(rgba, 6, 7), 16)
	local ab = tonumber(string.sub(rgba, 8, 9), 16) or nil
--	print (rb, gb, bb, ab) -- prints 	51	102	153	204
--	print (love.math.colorFromBytes( rb, gb, bb, ab )) -- prints	0.2	0.4	0.6	0.8
	love.graphics.setColor (love.math.colorFromBytes( rb, gb, bb, ab ))
end

See Also


Other Languages