# profile.c File Reference

`#include "magick/studio.h"`
`#include "magick/color.h"`
`#include "magick/configure.h"`
`#include "magick/exception.h"`
`#include "magick/exception-private.h"`
`#include "magick/hashmap.h"`
`#include "magick/image.h"`
`#include "magick/memory_.h"`
`#include "magick/monitor.h"`
`#include "magick/option.h"`
`#include "magick/profile.h"`
`#include "magick/property.h"`
`#include "magick/quantum.h"`
`#include "magick/quantum-private.h"`
`#include "magick/splay-tree.h"`
`#include "magick/string_.h"`
`#include "magick/utility.h"`
`#include "lcms.h"`

## Defines
#define | ThrowProfileException(severity, tag, context)
#define | MaxDirectoryStack 16
#define | EXIF_DELIMITER "\n"
#define | EXIF_NUM_FORMATS 12
#define | TAG_EXIF_OFFSET 0x8769
#define | TAG_INTEROP_OFFSET 0xa005
## Functions
MagickExport MagickBooleanType | CloneImageProfiles (Image *image, const Image *clone_image)
MagickExport MagickBooleanType | DeleteImageProfile (Image *image, const char *name)
MagickExport void | DestroyImageProfiles (Image *image)
MagickExport const StringInfo * | GetImageProfile (const Image *image, const char *name)
MagickExport char * | GetNextImageProfile (const Image *image)
static MagickBooleanType | SetAdobeRGB1998ImageProfile (Image *image)
static MagickBooleanType | SetsRGBImageProfile (Image *image)
MagickExport MagickBooleanType | ProfileImage (Image *image, const char *name, const void *datum, const size_t length, const MagickBooleanType magick_unused(clone))
MagickExport StringInfo * | RemoveImageProfile (Image *image, const char *name)
MagickExport void | ResetImageProfileIterator (const Image *image)
static void * | DestroyProfile (void *profile)
MagickExport MagickBooleanType | SetImageProfile (Image *image, const char *name, const StringInfo *profile)
static int | ReadProfileByte (unsigned char **p, size_t *length)
static unsigned short | ReadProfileShort (const EndianType endian, unsigned char *buffer)
static unsigned long | ReadProfileLong (const EndianType endian, unsigned char *buffer)
static void | WriteProfileLong (const EndianType endian, const unsigned long value, unsigned char *p)
static void | WriteProfileShort (const EndianType endian, const unsigned short value, unsigned char *p)
MagickExport MagickBooleanType | SyncImageProfiles (Image *image)

## Define Documentation

#define EXIF_DELIMITER "\n"

#define EXIF_NUM_FORMATS 12

#define MaxDirectoryStack 16

#define TAG_EXIF_OFFSET 0x8769

#define TAG_INTEROP_OFFSET 0xa005

#define ThrowProfileException | ( | severity,
|  | tag,
|  | context |  | ) |

Value:

    { \
      (void) cmsCloseProfile(source_profile); \
      (void) cmsCloseProfile(target_profile); \
      ThrowBinaryException(severity,tag,context); \
    }

## Function Documentation

MagickExport MagickBooleanType CloneImageProfiles | ( | Image * | image,
|  | const Image * | clone_image |
| ) |  |  |

MagickExport MagickBooleanType DeleteImageProfile | ( | Image * | image,
|  | const char * | name |
| ) |  |  |

MagickExport void DestroyImageProfiles | ( | Image * | image | ) |

static void* DestroyProfile | ( | void * | profile | ) | `[static]`

MagickExport const StringInfo* GetImageProfile | ( | const Image * | image,
|  | const char * | name |
| ) |  |  |

MagickExport char* GetNextImageProfile | ( | const Image * | image | ) |

MagickExport MagickBooleanType ProfileImage | ( | Image * | image,
|  | const char * | name,
|  | const void * | datum,
|  | const size_t | length,
|  | const MagickBooleanType | magick_unused(clone) |
| ) |  |  |

static int ReadProfileByte | ( | unsigned char ** | p,
|  | size_t * | length |
| ) |  |  | `[inline, static]`

static unsigned long ReadProfileLong | ( | const EndianType | endian,
|  | unsigned char * | buffer |
| ) |  |  | `[inline, static]`

static unsigned short ReadProfileShort | ( | const EndianType | endian,
|  | unsigned char * | buffer |
| ) |  |  | `[inline, static]`

MagickExport StringInfo* RemoveImageProfile | ( | Image * | image,
|  | const char * | name |
| ) |  |  |

MagickExport void ResetImageProfileIterator | ( | const Image * | image | ) |

static MagickBooleanType SetAdobeRGB1998ImageProfile | ( | Image * | image | ) | `[static]`

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

static MagickBooleanType SetsRGBImageProfile | ( | Image * | image | ) | `[static]`

MagickExport MagickBooleanType SyncImageProfiles | ( | Image * | image | ) |

static void WriteProfileLong | ( | const EndianType | endian,
|  | const unsigned long | value,
|  | unsigned char * | p |
| ) |  |  | `[inline, static]`

static void WriteProfileShort | ( | const EndianType | endian,
|  | const unsigned short | value,
|  | unsigned char * | p |
| ) |  |  | `[static]`