app: add image API to get Babl formats based on GimpImageType
because we often have only a type and an image, but no drawable (yet) to ask for its types.
This commit is contained in:
@ -1830,90 +1830,28 @@ gimp_drawable_fill_by_type (GimpDrawable *drawable,
|
||||
const Babl *
|
||||
gimp_drawable_get_format (const GimpDrawable *drawable)
|
||||
{
|
||||
GimpImageType type;
|
||||
|
||||
g_return_val_if_fail (GIMP_IS_DRAWABLE (drawable), NULL);
|
||||
|
||||
type = gimp_drawable_type (drawable);
|
||||
|
||||
switch (type)
|
||||
{
|
||||
case GIMP_RGB_IMAGE: return babl_format ("RGB u8");
|
||||
case GIMP_RGBA_IMAGE: return babl_format ("RGBA u8");
|
||||
case GIMP_GRAY_IMAGE: return babl_format ("Y u8");
|
||||
case GIMP_GRAYA_IMAGE: return babl_format ("YA u8");
|
||||
case GIMP_INDEXED_IMAGE:
|
||||
case GIMP_INDEXEDA_IMAGE:
|
||||
{
|
||||
GimpImage *image = gimp_item_get_image (GIMP_ITEM (drawable));
|
||||
|
||||
return (type == GIMP_INDEXED_IMAGE ?
|
||||
gimp_image_colormap_get_rgb_format (image) :
|
||||
gimp_image_colormap_get_rgba_format (image));
|
||||
}
|
||||
}
|
||||
|
||||
g_warn_if_reached ();
|
||||
|
||||
return NULL;
|
||||
return gimp_image_get_format (gimp_item_get_image (GIMP_ITEM (drawable)),
|
||||
gimp_drawable_type (drawable));
|
||||
}
|
||||
|
||||
const Babl *
|
||||
gimp_drawable_get_format_with_alpha (const GimpDrawable *drawable)
|
||||
{
|
||||
GimpImageType type;
|
||||
|
||||
g_return_val_if_fail (GIMP_IS_DRAWABLE (drawable), NULL);
|
||||
|
||||
type = gimp_drawable_type (drawable);
|
||||
|
||||
switch (type)
|
||||
{
|
||||
case GIMP_RGB_IMAGE:
|
||||
case GIMP_RGBA_IMAGE: return babl_format ("RGBA u8");
|
||||
case GIMP_GRAY_IMAGE:
|
||||
case GIMP_GRAYA_IMAGE: return babl_format ("YA u8");
|
||||
case GIMP_INDEXED_IMAGE:
|
||||
case GIMP_INDEXEDA_IMAGE:
|
||||
{
|
||||
GimpImage *image = gimp_item_get_image (GIMP_ITEM (drawable));
|
||||
|
||||
return gimp_image_colormap_get_rgba_format (image);
|
||||
}
|
||||
}
|
||||
|
||||
g_warn_if_reached ();
|
||||
|
||||
return NULL;
|
||||
return gimp_image_get_format_with_alpha (gimp_item_get_image (GIMP_ITEM (drawable)),
|
||||
gimp_drawable_type (drawable));
|
||||
}
|
||||
|
||||
const Babl *
|
||||
gimp_drawable_get_format_without_alpha (const GimpDrawable *drawable)
|
||||
{
|
||||
GimpImageType type;
|
||||
|
||||
g_return_val_if_fail (GIMP_IS_DRAWABLE (drawable), NULL);
|
||||
|
||||
type = gimp_drawable_type (drawable);
|
||||
|
||||
switch (type)
|
||||
{
|
||||
case GIMP_RGB_IMAGE:
|
||||
case GIMP_RGBA_IMAGE: return babl_format ("RGB u8");
|
||||
case GIMP_GRAY_IMAGE:
|
||||
case GIMP_GRAYA_IMAGE: return babl_format ("Y u8");
|
||||
case GIMP_INDEXED_IMAGE:
|
||||
case GIMP_INDEXEDA_IMAGE:
|
||||
{
|
||||
GimpImage *image = gimp_item_get_image (GIMP_ITEM (drawable));
|
||||
|
||||
return gimp_image_colormap_get_rgb_format (image);
|
||||
}
|
||||
}
|
||||
|
||||
g_warn_if_reached ();
|
||||
|
||||
return NULL;
|
||||
return gimp_image_get_format_without_alpha (gimp_item_get_image (GIMP_ITEM (drawable)),
|
||||
gimp_drawable_type (drawable));
|
||||
}
|
||||
|
||||
gboolean
|
||||
|
@ -225,7 +225,7 @@ void gimp_drawable_fill_by_type (GimpDrawable *drawable,
|
||||
GimpContext *context,
|
||||
GimpFillType fill_type);
|
||||
|
||||
const Babl * gimp_drawable_get_format (const GimpDrawable *drawable);
|
||||
const Babl * gimp_drawable_get_format (const GimpDrawable *drawable);
|
||||
const Babl * gimp_drawable_get_format_with_alpha
|
||||
(const GimpDrawable *drawable);
|
||||
const Babl * gimp_drawable_get_format_without_alpha
|
||||
|
@ -129,7 +129,7 @@ gimp_image_colormap_free (GimpImage *image)
|
||||
}
|
||||
|
||||
const Babl *
|
||||
gimp_image_colormap_get_rgb_format (GimpImage *image)
|
||||
gimp_image_colormap_get_rgb_format (const GimpImage *image)
|
||||
{
|
||||
g_return_val_if_fail (GIMP_IS_IMAGE (image), NULL);
|
||||
|
||||
@ -137,7 +137,7 @@ gimp_image_colormap_get_rgb_format (GimpImage *image)
|
||||
}
|
||||
|
||||
const Babl *
|
||||
gimp_image_colormap_get_rgba_format (GimpImage *image)
|
||||
gimp_image_colormap_get_rgba_format (const GimpImage *image)
|
||||
{
|
||||
g_return_val_if_fail (GIMP_IS_IMAGE (image), NULL);
|
||||
|
||||
|
@ -26,8 +26,8 @@ void gimp_image_colormap_init (GimpImage *image);
|
||||
void gimp_image_colormap_dispose (GimpImage *image);
|
||||
void gimp_image_colormap_free (GimpImage *image);
|
||||
|
||||
const Babl * gimp_image_colormap_get_rgb_format (GimpImage *image);
|
||||
const Babl * gimp_image_colormap_get_rgba_format (GimpImage *image);
|
||||
const Babl * gimp_image_colormap_get_rgb_format (const GimpImage *image);
|
||||
const Babl * gimp_image_colormap_get_rgba_format (const GimpImage *image);
|
||||
|
||||
GimpPalette * gimp_image_get_colormap_palette (GimpImage *image);
|
||||
|
||||
|
@ -1495,6 +1495,69 @@ gimp_image_get_combination_mode (GimpImageType dest_type,
|
||||
return valid_combinations[dest_type][src_bytes];
|
||||
}
|
||||
|
||||
const Babl *
|
||||
gimp_image_get_format (const GimpImage *image,
|
||||
GimpImageType type)
|
||||
{
|
||||
g_return_val_if_fail (GIMP_IS_IMAGE (image), NULL);
|
||||
|
||||
switch (type)
|
||||
{
|
||||
case GIMP_RGB_IMAGE: return babl_format ("RGB u8");
|
||||
case GIMP_RGBA_IMAGE: return babl_format ("RGBA u8");
|
||||
case GIMP_GRAY_IMAGE: return babl_format ("Y u8");
|
||||
case GIMP_GRAYA_IMAGE: return babl_format ("YA u8");
|
||||
case GIMP_INDEXED_IMAGE: return gimp_image_colormap_get_rgb_format (image);
|
||||
case GIMP_INDEXEDA_IMAGE: return gimp_image_colormap_get_rgba_format (image);
|
||||
}
|
||||
|
||||
g_warn_if_reached ();
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
const Babl *
|
||||
gimp_image_get_format_with_alpha (const GimpImage *image,
|
||||
GimpImageType type)
|
||||
{
|
||||
g_return_val_if_fail (GIMP_IS_IMAGE (image), NULL);
|
||||
|
||||
switch (type)
|
||||
{
|
||||
case GIMP_RGB_IMAGE:
|
||||
case GIMP_RGBA_IMAGE: return babl_format ("RGBA u8");
|
||||
case GIMP_GRAY_IMAGE:
|
||||
case GIMP_GRAYA_IMAGE: return babl_format ("YA u8");
|
||||
case GIMP_INDEXED_IMAGE:
|
||||
case GIMP_INDEXEDA_IMAGE: return gimp_image_colormap_get_rgba_format (image);
|
||||
}
|
||||
|
||||
g_warn_if_reached ();
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
const Babl *
|
||||
gimp_image_get_format_without_alpha (const GimpImage *image,
|
||||
GimpImageType type)
|
||||
{
|
||||
g_return_val_if_fail (GIMP_IS_IMAGE (image), NULL);
|
||||
|
||||
switch (type)
|
||||
{
|
||||
case GIMP_RGB_IMAGE:
|
||||
case GIMP_RGBA_IMAGE: return babl_format ("RGB u8");
|
||||
case GIMP_GRAY_IMAGE:
|
||||
case GIMP_GRAYA_IMAGE: return babl_format ("Y u8");
|
||||
case GIMP_INDEXED_IMAGE:
|
||||
case GIMP_INDEXEDA_IMAGE: return gimp_image_colormap_get_rgb_format (image);
|
||||
}
|
||||
|
||||
g_warn_if_reached ();
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
gint
|
||||
gimp_image_get_ID (const GimpImage *image)
|
||||
{
|
||||
|
@ -170,6 +170,13 @@ GimpImageType gimp_image_base_type_with_alpha (const GimpImage *image);
|
||||
CombinationMode gimp_image_get_combination_mode (GimpImageType dest_type,
|
||||
gint src_bytes);
|
||||
|
||||
const Babl * gimp_image_get_format (const GimpImage *image,
|
||||
GimpImageType type);
|
||||
const Babl * gimp_image_get_format_with_alpha (const GimpImage *image,
|
||||
GimpImageType type);
|
||||
const Babl * gimp_image_get_format_without_alpha (const GimpImage *image,
|
||||
GimpImageType type);
|
||||
|
||||
gint gimp_image_get_ID (const GimpImage *image);
|
||||
GimpImage * gimp_image_get_by_ID (Gimp *gimp,
|
||||
gint id);
|
||||
|
Reference in New Issue
Block a user