- NAME
- SYNOPSIS
- FUNCTION DESCRIPTIONS

- CloneImageProfiles
- DestroyImageProfiles
- GetImageProfile
- GetNextImageProfile
- ProfileImage
- RemoveImageProfile
- ResetProfileIterator
- SetImageProfile

# NAME

profile - Dealing with Image Profiles

# SYNOPSIS

MagickBooleanType CloneImageProfiles( Image *image, const Image *clone_image );

void DestroyImageProfiles( Image *image );

StringInfo * GetImageProfile( const Image *image, const char *name );

char * GetNextImageProfile( const Image *image );

MagickBooleanType ProfileImage( Image *image, const char *name, const unsigned char *datum, const unsigned long length, const MagickBooleanType clone );

StringInfo RemoveImageProfile( Image *image, const char *name );

MagickBooleanType SetImageProfile( Image *image, const char *name, const StringInfo *profile );

# FUNCTION DESCRIPTIONS

## CloneImageProfiles

> CloneImageProfiles() clones one or more image profiles.

The format of the CloneImageProfiles method is:

> MagickBooleanType CloneImageProfiles ( Image *image, const Image *clone_image );

A description of each parameter follows:

image:
  The image.

clone_image:
  The clone image.

## DestroyImageProfiles

> DestroyImageProfiles() releases memory associated with an image profile map.

The format of the DestroyProfiles method is:

> void DestroyImageProfiles ( Image *image );

A description of each parameter follows:

image:
  The image.

## GetImageProfile

> GetImageProfile() gets a profile associated with an image by name.

The format of the GetImageProfile method is:

> StringInfo *GetImageProfile ( const Image *image, const char *name );

A description of each parameter follows:

image:
  The image.

name:
  The profile name.

## GetNextImageProfile

> GetNextImageProfile() gets the next profile name for an image.

The format of the GetNextImageProfile method is:

> char *GetNextImageProfile ( const Image *image );

A description of each parameter follows:

hash_info:
  The hash info.

## ProfileImage

> ProfileImage() adds or removes a ICC, IPTC, or generic profile from an image. If the profile is NULL, it is removed from the image otherwise added. Use a name of ' *' and a profile of NULL to remove all profiles from the image.

The format of the ProfileImage method is:

> MagickBooleanType ProfileImage ( Image *image, const char *name, const unsigned char *datum, const unsigned long length, const MagickBooleanType clone );

A description of each parameter follows:

image:
  The image.

name:
  Name of profile to add or remove: ICC, IPTC, or generic profile.

datum:
  The profile data.

length:
  The length of the profile.

clone:
  should be MagickFalse.

## RemoveImageProfile

> RemoveImageProfile() removes a profile from the image-map by its name.

The format of the RemoveImageProfile method is:

> StringInfo RemoveImageProfile ( Image *image, const char *name );

A description of each parameter follows:

image:
  The image.

name:
  The profile name.

## ResetProfileIterator

`ResetImageProfileIterator()` resets the image profile iterator. Use it in conjunction with `GetNextImageProfile()` to iterate over all the profiles associated with an image.

The format of the ResetImageProfileIterator method is:

        ResetImageProfileIterator(Image *image)

A description of each parameter follows:

image:
  The image.

## SetImageProfile

> SetImageProfile() adds a named profile to the image. If a profile with the same name already exists, it is replaced. This method differs from the ProfileImage ( ) method in that it does not apply CMS color profiles.

The format of the SetImageProfile method is:

> MagickBooleanType SetImageProfile ( Image *image, const char *name, const StringInfo *profile );

A description of each parameter follows:

image:
  The image.

name:
  The profile name.

profile:
  A StringInfo structure that contains the named profile.

"Image manipulation software that works like magick"