/* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % S e t I m a g e A r t i f a c t % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % SetImageArtifact() associates makes a copy of the given string arguments % and inserts it into the artifact tree of the given image. % % The format of the SetImageArtifact method is: % % MagickBooleanType SetImageArtifact(Image *image,const char *artifact, % const char *value) % % A description of each parameter follows: % % o image: the image. % % o artifact: the image artifact key. % % o value: the image artifact value. % */ MagickExport MagickBooleanType SetImageArtifact(Image *image, const char *artifact,const char *value) { MagickBooleanType status; assert(image != (Image *) NULL); assert(image->signature == MagickCoreSignature); if (image->debug != MagickFalse) (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename); /* Create tree if needed - specify how key,values are to be freed. */ if (image->artifacts == (void *) NULL) image->artifacts=NewSplayTree(CompareSplayTreeString,RelinquishMagickMemory, RelinquishMagickMemory); /* Delete artifact if NULL -- empty string values are valid!, */ if (value == (const char *) NULL) return(DeleteImageArtifact(image,artifact)); /* Add artifact to splay-tree. */ status=AddValueToSplayTree((SplayTreeInfo *) image->artifacts, ConstantString(artifact),ConstantString(value)); return(status); }
/* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % S e t I m a g e A r t i f a c t % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % SetImageArtifact() associates a value with an image artifact. % % The format of the SetImageArtifact method is: % % MagickBooleanType SetImageArtifact(Image *image,const char *artifact, % const char *value) % % A description of each parameter follows: % % o image: the image. % % o artifact: the image artifact. % % o values: the image artifact values. % */ MagickExport MagickBooleanType SetImageArtifact(Image *image, const char *artifact,const char *value) { MagickBooleanType status; assert(image != (Image *) NULL); assert(image->signature == MagickSignature); if (image->debug != MagickFalse) (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s", image->filename); if (image->artifacts == (void *) NULL) image->artifacts=NewSplayTree(CompareSplayTreeString, RelinquishMagickMemory,RelinquishMagickMemory); if ((value == (const char *) NULL) || (*value == '\0')) return(DeleteImageArtifact(image,artifact)); status=AddValueToSplayTree((SplayTreeInfo *) image->artifacts, ConstantString(artifact),ConstantString(value)); return(status); }