24 lines
655 B
C
24 lines
655 B
C
#include "image/utils.h"
|
|
|
|
unsigned long
|
|
u32to_u64(const unsigned int clr)
|
|
{
|
|
unsigned long mask = 0;
|
|
unsigned long alpha = DECODE_A(clr);
|
|
unsigned long red = DECODE_R(clr);
|
|
unsigned long green = DECODE_G(clr);
|
|
unsigned long blue = DECODE_B(clr);
|
|
return (alpha << 48) | (red << 32) | (green << 16) | (blue);
|
|
}
|
|
|
|
unsigned int
|
|
u64to_u32(const unsigned long clr, const unsigned long u64_div)
|
|
{
|
|
unsigned int a = ((clr >> 48) & LONG_BYTE);
|
|
unsigned int r = ((clr >> 32) & LONG_BYTE);
|
|
unsigned int g = ((clr >> 16) & LONG_BYTE);
|
|
unsigned int b = (clr & LONG_BYTE);
|
|
return ENCODE_ARGB((a / u64_div), (r / u64_div), (g / u64_div),
|
|
(b / u64_div));
|
|
}
|