Top | ![]() |
![]() |
![]() |
![]() |
GwyRGBA * | gwy_rgba_new () |
GwyRGBA * | gwy_rgba_copy () |
void | gwy_rgba_free () |
void | gwy_rgba_interpolate () |
gboolean | gwy_rgba_get_from_container () |
void | gwy_rgba_store_to_container () |
gboolean | gwy_rgba_remove_from_container () |
void | gwy_rgba_to_hex6 () |
void | gwy_rgba_to_hex8 () |
guint32 | gwy_rgba_to_pixbuf_pixel () |
void | gwy_rgba_from_pixbuf_pixel () |
GwyRGBA is a bit depth independent representation of an RGB or RGBA color, using floating point values from the [0,1] interval.
GwyRGBA is not an object, but a simple struct that can be allocated on stack on created with g_new()
or malloc()
.
Helper functions for GwyContainer storage by component (gwy_rgba_store_to_container()
,
gwy_rgba_get_from_container()
) are provided.
GwyRGBA * gwy_rgba_new (gdouble r
,gdouble g
,gdouble b
,gdouble a
);
Creates RGBA colour specification.
This is mostly useful for language bindings.
GwyRGBA *
gwy_rgba_copy (const GwyRGBA *rgba
);
Makes a copy of a rgba structure. The result must be freed using
gwy_rgba_free()
.
void
gwy_rgba_free (GwyRGBA *rgba
);
Frees an rgba structure created with gwy_rgba_copy()
.
void gwy_rgba_interpolate (const GwyRGBA *src1
,const GwyRGBA *src2
,gdouble x
,GwyRGBA *rgba
);
Linearly interpolates two colors, including alpha blending.
Correct blending of two not fully opaque colors is tricky. Always use this function, not simple independent interpolation of r, g, b, and a.
gboolean gwy_rgba_get_from_container (GwyRGBA *rgba
,GwyContainer *container
,const gchar *prefix
);
Gets RGBA color components from a container.
This is a convenience function to get the components in the common arrangement.
rgba |
A RGBA color. |
|
container |
A GwyContainer to get the color components from. |
|
prefix |
Prefix in |
void gwy_rgba_store_to_container (const GwyRGBA *rgba
,GwyContainer *container
,const gchar *prefix
);
Stores RGBA color components to a container.
This is a convenience function to store the components in the common arrangement.
rgba |
A RGBA color. |
|
container |
A GwyContainer to store the color components to. |
|
prefix |
Prefix in |
gboolean gwy_rgba_remove_from_container (GwyContainer *container
,const gchar *prefix
);
Removes RGBA color components from a container.
This is a convenience function to remove the components in the common arrangement.
container |
A GwyContainer to remove the color components from. |
|
prefix |
Prefix in |
void gwy_rgba_to_hex6 (const GwyRGBA *rgba
,gchar *hexout
);
Formats the R, G and B components of a RGBA color to hexadecimal string.
The component order is R, G and B. The output has always exactly 6 bytes and does not include any "#" prefix which is used in some contexts.
void gwy_rgba_to_hex8 (const GwyRGBA *rgba
,gchar *hexout
);
Formats all components of a RGBA color to hexadecimal string.
The component order is A, R, G and B. Note that while this order is a common it is by no means universal. The output has always exactly 8 bytes and does not include any "#" prefix which is used in some contexts.
guint32
gwy_rgba_to_pixbuf_pixel (const GwyRGBA *rgba
);
Converts a RGBA color to pixbuf pixel.
The returned pixel value includes opacity. If rgba
is partially transparent, so is the pixel.
void gwy_rgba_from_pixbuf_pixel (GwyRGBA *rgba
,guint32 pixel
);
Converts a pixbuf pixel value to a RGBA color.
The conversion includes opacity. If the opacity channel is undefined or should be ignored, you need to either set
the lowest byte of pixel
to 0xff or fix rgba
afterwards.