profile.c File Reference

#include "magick/studio.h"
#include "magick/attribute.h"
#include "magick/cache.h"
#include "magick/color.h"
#include "magick/colorspace-private.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/monitor-private.h"
#include "magick/option.h"
#include "magick/option-private.h"
#include "magick/profile.h"
#include "magick/property.h"
#include "magick/quantum.h"
#include "magick/quantum-private.h"
#include "magick/resource_.h"
#include "magick/splay-tree.h"
#include "magick/string_.h"
#include "magick/string-private.h"
#include "magick/thread-private.h"
#include "magick/token.h"
#include "magick/utility.h"
#include <wchar.h>
#include "lcms2.h"
#include <libxml/parser.h>
#include <libxml/tree.h>
Include dependency graph for profile.c:

Data Structures

struct  _LCMSInfo

Defines

#define GetLCMSPixel(source_info, pixel)   (source_info.scale*QuantumScale*(pixel)+source_info.translate)
#define ProfileImageTag   "Profile/Image"
#define SetLCMSPixel(target_info, pixel)   ClampToQuantum(target_info.scale*QuantumRange*(pixel)+target_info.translate)
#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

Typedefs

typedef struct _LCMSInfo LCMSInfo

Functions

static MagickBooleanType SetImageProfileInternal (Image *, const char *, const StringInfo *, const MagickBooleanType)
static void WriteTo8BimProfile (Image *, const char *, const StringInfo *)
MagickExport MagickBooleanType CloneImageProfiles (Image *image, const Image *clone_image)
MagickExport MagickBooleanType DeleteImageProfile (Image *image, const char *name)
MagickExport void DestroyImageProfiles (Image *image)
MagickExport const StringInfoGetImageProfile (const Image *image, const char *name)
MagickExport char * GetNextImageProfile (const Image *image)
static void * cmsGetContextUserData (cmsContext ContextID)
static cmsContext cmsCreateContext (void *magick_unused(Plugin), void *UserData)
static void cmsSetLogErrorHandlerTHR (cmsContext magick_unused(ContextID), cmsLogErrorHandlerFunction Fn)
static void cmsDeleteContext (cmsContext magick_unused(ContextID))
static double ** DestroyPixelThreadSet (double **pixels)
static double ** AcquirePixelThreadSet (const size_t columns, const size_t channels)
static cmsHTRANSFORM * DestroyTransformThreadSet (cmsHTRANSFORM *transform)
static cmsHTRANSFORM * AcquireTransformThreadSet (const LCMSInfo *source_info, const LCMSInfo *target_info, const cmsUInt32Number flags, cmsContext cms_context)
static void LCMSExceptionHandler (cmsContext context, cmsUInt32Number severity, const char *message)
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 StringInfoRemoveImageProfile (Image *image, const char *name)
MagickExport void ResetImageProfileIterator (const Image *image)
static void * DestroyProfile (void *profile)
static const unsigned char * ReadResourceByte (const unsigned char *p, unsigned char *quantum)
static const unsigned char * ReadResourceLong (const unsigned char *p, unsigned int *quantum)
static const unsigned char * ReadResourceShort (const unsigned char *p, unsigned short *quantum)
static void WriteResourceLong (unsigned char *p, const unsigned int quantum)
static void GetProfilesFromResourceBlock (Image *image, const StringInfo *resource_block)
static MagickBooleanType ValidateXMPProfile (const StringInfo *profile)
MagickExport MagickBooleanType SetImageProfile (Image *image, const char *name, const StringInfo *profile)
static int ReadProfileByte (unsigned char **p, size_t *length)
static signed short ReadProfileShort (const EndianType endian, unsigned char *buffer)
static signed int ReadProfileLong (const EndianType endian, unsigned char *buffer)
static signed int ReadProfileMSBLong (unsigned char **p, size_t *length)
static signed short ReadProfileMSBShort (unsigned char **p, size_t *length)
static void WriteProfileLong (const EndianType endian, const size_t value, unsigned char *p)
static void WriteProfileShort (const EndianType endian, const unsigned short value, unsigned char *p)
static MagickBooleanType Sync8BimProfile (Image *image, StringInfo *profile)
static MagickBooleanType SyncExifProfile (Image *image, StringInfo *profile)
MagickExport MagickBooleanType SyncImageProfiles (Image *image)

Define Documentation

#define EXIF_DELIMITER   "\n"
#define EXIF_NUM_FORMATS   12

Referenced by SyncExifProfile().

#define GetLCMSPixel ( source_info,
pixel   )     (source_info.scale*QuantumScale*(pixel)+source_info.translate)

Referenced by ProfileImage().

#define MaxDirectoryStack   16

Referenced by GetEXIFProperty(), and SyncExifProfile().

#define ProfileImageTag   "Profile/Image"

Referenced by ProfileImage().

#define SetLCMSPixel ( target_info,
pixel   )     ClampToQuantum(target_info.scale*QuantumRange*(pixel)+target_info.translate)

Referenced by ProfileImage().

#define TAG_EXIF_OFFSET   0x8769

Referenced by GetEXIFProperty(), and SyncExifProfile().

#define TAG_INTEROP_OFFSET   0xa005

Referenced by GetEXIFProperty(), and SyncExifProfile().

#define ThrowProfileException ( severity,
tag,
context   ) 
Value:
{ \
  if (cms_context != (cmsContext) NULL) \
    cmsDeleteContext(cms_context); \
  if (source_info.profile != (cmsHPROFILE) NULL) \
    (void) cmsCloseProfile(source_info.profile); \
  if (target_info.profile != (cmsHPROFILE) NULL) \
    (void) cmsCloseProfile(target_info.profile); \
  ThrowBinaryException(severity,tag,context); \
}

Referenced by ProfileImage().


Typedef Documentation

typedef struct _LCMSInfo LCMSInfo

Function Documentation

static double** AcquirePixelThreadSet ( const size_t  columns,
const size_t  channels 
) [static]
static cmsHTRANSFORM* AcquireTransformThreadSet ( const LCMSInfo source_info,
const LCMSInfo target_info,
const cmsUInt32Number  flags,
cmsContext  cms_context 
) [static]
MagickExport MagickBooleanType CloneImageProfiles ( Image image,
const Image clone_image 
)
static cmsContext cmsCreateContext ( void *  magick_unusedPlugin,
void *  UserData 
) [static]

References magick_unreferenced.

Referenced by ProfileImage().

static void cmsDeleteContext ( cmsContext   magick_unusedContextID  )  [static]

References magick_unreferenced.

Referenced by ProfileImage().

static void* cmsGetContextUserData ( cmsContext  ContextID  )  [static]

Referenced by LCMSExceptionHandler().

static void cmsSetLogErrorHandlerTHR ( cmsContext   magick_unusedContextID,
cmsLogErrorHandlerFunction  Fn 
) [static]

References magick_unreferenced.

Referenced by ProfileImage().

MagickExport MagickBooleanType DeleteImageProfile ( Image image,
const char *  name 
)
MagickExport void DestroyImageProfiles ( Image image  ) 
static double** DestroyPixelThreadSet ( double **  pixels  )  [static]
static void* DestroyProfile ( void *  profile  )  [static]

References DestroyStringInfo().

Referenced by SetImageProfileInternal().

static cmsHTRANSFORM* DestroyTransformThreadSet ( cmsHTRANSFORM *  transform  )  [static]
MagickExport const StringInfo* GetImageProfile ( const Image image,
const char *  name 
)
MagickExport char* GetNextImageProfile ( const Image image  ) 
static void GetProfilesFromResourceBlock ( Image image,
const StringInfo resource_block 
) [static]
static void LCMSExceptionHandler ( cmsContext  context,
cmsUInt32Number  severity,
const char *  message 
) [static]
MagickExport MagickBooleanType ProfileImage ( Image image,
const char *  name,
const void *  datum,
const size_t  length,
const MagickBooleanType   magick_unusedclone 
)

References AbsoluteIntent, AcquireAuthenticCacheView(), AcquirePixelThreadSet(), AcquireStringInfo(), AcquireTransformThreadSet(), _Image::black_point_compensation, _LCMSInfo::channels, cmsCreateContext(), cmsDeleteContext(), cmsSetLogErrorHandlerTHR(), cmsUInt32Number, CMYKColorspace, ColorSeparationMatteType, ColorSeparationType, _LCMSInfo::colorspace, _Image::columns, CompareStringInfo(), _Image::debug, DeleteImageProfile(), DestroyCacheView(), DestroyPixelThreadSet(), DestroyStringInfo(), DestroyTransformThreadSet(), DirectClass, _Image::exception, _Image::filename, GetCacheViewAuthenticIndexQueue(), GetCacheViewAuthenticPixels(), GetImageProfile(), GetImageProperty(), GetLCMSPixel, GetMagickModule, GetNextImageProfile(), GetOpenMPThreadId(), GetPixelBlue, GetPixelGreen, GetPixelIndex, GetPixelRed, GetStringInfoDatum(), GetStringInfoLength(), GRAYColorspace, GrayscaleMatteType, GrayscaleType, ImageError, _LCMSInfo::intent, IsOptionMember(), LabColorspace, LCMSExceptionHandler(), LocaleCompare(), LogMagickEvent(), magick_restrict, magick_unreferenced, MagickCoreSignature, MagickFalse, MagickTrue, _Image::matte, MissingDelegateWarning, PerceptualIntent, _LCMSInfo::pixels, _LCMSInfo::profile, ProfileImageTag, _Image::progress_monitor, RelativeIntent, _Image::rendering_intent, ResetImageProfileIterator(), ResourceLimitError, _Image::rows, SaturationIntent, _LCMSInfo::scale, SetImageColorspace(), SetImageProfile(), SetImageProgress(), SetImageStorageClass(), SetLCMSPixel, SetPixelBlue, SetPixelGreen, SetPixelIndex, SetPixelRed, SetsRGBImageProfile(), SetStringInfoDatum(), _Image::signature, sRGBColorspace, SyncCacheViewAuthenticPixels(), ThrowBinaryImageException, ThrowMagickException(), ThrowProfileException, TraceEvent, _LCMSInfo::translate, TrueColorMatteType, TrueColorType, _Image::type, _LCMSInfo::type, and XYZColorspace.

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

Referenced by Sync8BimProfile(), and SyncExifProfile().

static signed int ReadProfileLong ( const EndianType  endian,
unsigned char *  buffer 
) [inline, static]

References LSBEndian.

Referenced by ReadProfileMSBLong(), and SyncExifProfile().

static signed int ReadProfileMSBLong ( unsigned char **  p,
size_t *  length 
) [inline, static]

References MSBEndian, and ReadProfileLong().

Referenced by Sync8BimProfile().

static signed short ReadProfileMSBShort ( unsigned char **  p,
size_t *  length 
) [inline, static]

References MSBEndian, and ReadProfileShort().

Referenced by Sync8BimProfile().

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

References LSBEndian.

Referenced by ReadProfileMSBShort(), and SyncExifProfile().

static const unsigned char* ReadResourceByte ( const unsigned char *  p,
unsigned char *  quantum 
) [inline, static]
static const unsigned char* ReadResourceLong ( const unsigned char *  p,
unsigned int *  quantum 
) [inline, static]
static const unsigned char* ReadResourceShort ( const unsigned char *  p,
unsigned short *  quantum 
) [inline, static]
MagickExport StringInfo* RemoveImageProfile ( Image image,
const char *  name 
)
MagickExport void ResetImageProfileIterator ( const Image image  ) 
MagickExport MagickBooleanType SetImageProfile ( Image image,
const char *  name,
const StringInfo profile 
)
static MagickBooleanType SetImageProfileInternal ( Image image,
const char *  name,
const StringInfo profile,
const MagickBooleanType  recursive 
) [static]
static MagickBooleanType SetsRGBImageProfile ( Image image  )  [static]
static MagickBooleanType Sync8BimProfile ( Image image,
StringInfo profile 
) [static]
static MagickBooleanType SyncExifProfile ( Image image,
StringInfo profile 
) [static]
MagickExport MagickBooleanType SyncImageProfiles ( Image image  ) 
static MagickBooleanType ValidateXMPProfile ( const StringInfo profile  )  [static]
static void WriteProfileLong ( const EndianType  endian,
const size_t  value,
unsigned char *  p 
) [inline, static]

References LSBEndian.

Referenced by Sync8BimProfile(), and SyncExifProfile().

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

References LSBEndian.

Referenced by Sync8BimProfile(), and SyncExifProfile().

static void WriteResourceLong ( unsigned char *  p,
const unsigned int  quantum 
) [inline, static]

Referenced by WriteTo8BimProfile().

static void WriteTo8BimProfile ( Image image,
const char *  name,
const StringInfo profile 
) [static]

Generated on 6 Jan 2020 for MagickCore by  doxygen 1.6.1