/* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % M M AAA GGGG IIIII CCCC K K % % MM MM A A G I C K K % % M M M AAAAA G GGG I C KKK % % M M A A G G I C K K % % M M A A GGGG IIIII CCCC K K % % % % PPPP RRRR OOO PPPP EEEEE RRRR TTTTT Y Y % % P P R R O O P P E R R T Y Y % % PPPP RRRR O O PPPP EEE RRRR T Y % % P R R O O P E R R T Y % % P R R OOO P EEEEE R R T Y % % % % % % Set or Get MagickWand Properties, Options, or Profiles % % % % Software Design % % John Cristy % % August 2003 % % % % % % Copyright 1999-2007 ImageMagick Studio LLC, a non-profit organization % % dedicated to making software imaging solutions freely available. % % % % You may not use this file except in compliance with the License. You may % % obtain a copy of the License at % % % % http://www.imagemagick.org/script/license.php % % % % Unless required by applicable law or agreed to in writing, software % % distributed under the License is distributed on an "AS IS" BASIS, % % WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. % % See the License for the specific language governing permissions and % % limitations under the License. % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % */ /* Include declarations. */ #include "wand/studio.h" #include "wand/MagickWand.h" #include "wand/magick-wand-private.h" #include "wand/wand.h" /* Define declarations. */ #define ThrowWandException(severity,tag,context) \ { \ (void) ThrowMagickException(wand->exception,GetMagickModule(),severity, \ tag,"`%s'",context); \ return(MagickFalse); \ } /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % M a g i c k D e l e t e I m a g e P r o p e r t y % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % MagickDeleteImageProperty() deletes a wand property. % % The format of the MagickDeleteImageProperty method is: % % MagickBooleanType MagickDeleteImageProperty(MagickWand *wand, % const char *property) % % A description of each parameter follows: % % o image: The image. % % o property: The image property. % */ WandExport MagickBooleanType MagickDeleteImageProperty(MagickWand *wand, const char *property) { assert(wand != (MagickWand *) NULL); assert(wand->signature == WandSignature); if (wand->debug != MagickFalse) (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); if (wand->images == (Image *) NULL) { (void) ThrowMagickException(wand->exception,GetMagickModule(),WandError, "ContainsNoImages","`%s'",wand->name); return(MagickFalse); } return(DeleteImageProperty(wand->images,property)); } /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % M a g i c k D e l e t e O p t i o n % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % MagickDeleteOption() deletes a wand option. % % The format of the MagickDeleteOption method is: % % MagickBooleanType MagickDeleteOption(MagickWand *wand, % const char *option) % % A description of each parameter follows: % % o image: The image. % % o option: The image option. % */ WandExport MagickBooleanType MagickDeleteOption(MagickWand *wand, const char *option) { assert(wand != (MagickWand *) NULL); assert(wand->signature == WandSignature); if (wand->debug != MagickFalse) (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); return(DeleteImageOption(wand->image_info,option)); } /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % M a g i c k G e t A n t i a l i a s % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % MagickGetAntialias() returns the antialias property associated with the % wand. % % The format of the MagickGetAntialias method is: % % MagickBooleanType MagickGetAntialias(const MagickWand *wand) % % A description of each parameter follows: % % o wand: The magick wand. % */ WandExport MagickBooleanType MagickGetAntialias(const MagickWand *wand) { assert(wand != (const MagickWand *) NULL); assert(wand->signature == WandSignature); if (wand->debug != MagickFalse) (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); return(wand->image_info->antialias); } /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % M a g i c k G e t B a c k g r o u n d C o l o r % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % MagickGetBackgroundColor() returns the wand background color. % % The format of the MagickGetBackgroundColor method is: % % PixelWand *MagickGetBackgroundColor(MagickWand *wand) % % A description of each parameter follows: % % o wand: The magick wand. % */ WandExport PixelWand *MagickGetBackgroundColor(MagickWand *wand) { PixelWand *background_color; assert(wand != (MagickWand *) NULL); assert(wand->signature == WandSignature); if (wand->debug != MagickFalse) (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); background_color=NewPixelWand(); PixelSetQuantumColor(background_color,&wand->image_info->background_color); return(background_color); } /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % M a g i c k G e t C o m p r e s s i o n % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % MagickGetCompression() gets the wand compression type. % % The format of the MagickGetCompression method is: % % CompressionType MagickGetCompression(MagickWand *wand) % % A description of each parameter follows: % % o wand: The magick wand. % */ WandExport CompressionType MagickGetCompression(MagickWand *wand) { assert(wand != (MagickWand *) NULL); assert(wand->signature == WandSignature); if (wand->debug != MagickFalse) (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); return(wand->image_info->compression); } /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % M a g i c k G e t C o m p r e s s i o n Q u a l i t y % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % MagickGetCompressionQuality() gets the wand compression quality. % % The format of the MagickGetCompressionQuality method is: % % unsigned long MagickGetCompressionQuality(MagickWand *wand) % % A description of each parameter follows: % % o wand: The magick wand. % */ WandExport unsigned long MagickGetCompressionQuality(MagickWand *wand) { assert(wand != (MagickWand *) NULL); assert(wand->signature == WandSignature); if (wand->debug != MagickFalse) (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); return(wand->image_info->quality); } /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % M a g i c k G e t C o p y r i g h t % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % MagickGetCopyright() returns the ImageMagick API copyright as a string % constant. % % The format of the MagickGetCopyright method is: % % const char *MagickGetCopyright(void) % */ WandExport const char *MagickGetCopyright(void) { return(GetMagickCopyright()); } /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % M a g i c k G e t F i l e n a m e % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % MagickGetFilename() returns the filename associated with an image sequence. % % The format of the MagickGetFilename method is: % % const char *MagickGetFilename(const MagickWand *wand) % % A description of each parameter follows: % % o wand: The magick wand. % % */ WandExport char *MagickGetFilename(const MagickWand *wand) { assert(wand != (const MagickWand *) NULL); assert(wand->signature == WandSignature); if (wand->debug != MagickFalse) (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); return(AcquireString(wand->image_info->filename)); } /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % M a g i c k G e t F o n t % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % MagickGetFont() returns the font associated with the MagickWand. % % The format of the MagickGetFont method is: % % char *MagickGetFont(MagickWand *wand) % % A description of each parameter follows: % % o wand: The magick wand. % */ WandExport char *MagickGetFont(MagickWand *wand) { assert(wand != (MagickWand *) NULL); assert(wand->signature == WandSignature); if (wand->debug != MagickFalse) (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); if (wand->image_info->font == (char *) NULL) return((char *) NULL); return(AcquireString(wand->image_info->font)); } /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % M a g i c k G e t F o r m a t % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % MagickGetFormat() returns the format of the magick wand. % % The format of the MagickGetFormat method is: % % const char MagickGetFormat(MagickWand *wand) % % A description of each parameter follows: % % o wand: The magick wand. % */ WandExport char *MagickGetFormat(MagickWand *wand) { assert(wand != (MagickWand *) NULL); assert(wand->signature == WandSignature); if (wand->debug != MagickFalse) (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); return(AcquireString(wand->image_info->magick)); } /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % M a g i c k G e t H o m e U R L % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % MagickGetHomeURL() returns the ImageMagick home URL. % % The format of the MagickGetHomeURL method is: % % char *MagickGetHomeURL(void) % */ WandExport char *MagickGetHomeURL(void) { return(GetMagickHomeURL()); } /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % M a g i c k G e t I m a g e P r o f i l e % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % MagickGetImageProfile() returns the named image profile. % % The format of the MagickGetImageProfile method is: % % unsigned char *MagickGetImageProfile(MagickWand *wand,const char *name, % size_t *length) % % A description of each parameter follows: % % o wand: The magick wand. % % o name: Name of profile to return: ICC, IPTC, or generic profile. % % o length: The length of the profile. % */ WandExport unsigned char *MagickGetImageProfile(MagickWand *wand, const char *name,size_t *length) { const StringInfo *profile; unsigned char *datum; assert(wand != (MagickWand *) NULL); assert(wand->signature == WandSignature); if (wand->debug != MagickFalse) (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); if (wand->images == (Image *) NULL) { (void) ThrowMagickException(wand->exception,GetMagickModule(),WandError, "ContainsNoImages","`%s'",wand->name); return((unsigned char *) NULL); } *length=0; if (wand->images->profiles == (SplayTreeInfo *) NULL) return((unsigned char *) NULL); profile=GetImageProfile(wand->images,name); if (profile == (StringInfo *) NULL) return((unsigned char *) NULL); datum=(unsigned char *) AcquireQuantumMemory(GetStringInfoLength(profile), sizeof(*datum)); if (datum == (unsigned char *) NULL) return((unsigned char *) NULL); (void) CopyMagickMemory(datum,GetStringInfoDatum(profile), GetStringInfoLength(profile)); *length=(unsigned long) GetStringInfoLength(profile); return(datum); } /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % M a g i c k G e t I m a g e P r o f i l e s % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % MagickGetImageProfiles() returns all the profile names that match the % specified pattern associated with a wand. Use MagickGetImageProfile() to % return the value of a particular property. Use MagickRelinquishMemory() to % free the value when you are finished with it. % % The format of the MagickGetImageProfiles method is: % % char *MagickGetImageProfiles(MagickWand *wand, % unsigned long *number_profiles) % % A description of each parameter follows: % % o wand: The magick wand. % % o pattern: Specifies a pointer to a text string containing a pattern. % % o number_profiles: The number profiles associated with this wand. % */ WandExport char **MagickGetImageProfiles(MagickWand *wand,const char *pattern, unsigned long *number_profiles) { char **profiles; const char *property; register long i; size_t length; assert(wand != (MagickWand *) NULL); assert(wand->signature == WandSignature); if (wand->debug != MagickFalse) (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); if (wand->images == (Image *) NULL) { (void) ThrowMagickException(wand->exception,GetMagickModule(),WandError, "ContainsNoImages","`%s'",wand->name); return((char **) NULL); } (void) GetImageProfile(wand->images,"exif:*"); length=1024; profiles=(char **) AcquireQuantumMemory(length,sizeof(*profiles)); if (profiles == (char **) NULL) return((char **) NULL); ResetImageProfileIterator(wand->images); property=GetNextImageProfile(wand->images); for (i=0; property != (const char *) NULL; ) { if ((*property != '[') && (GlobExpression(property,pattern,MagickFalse) != MagickFalse)) { if ((i+1) >= (long) length) { length<<=1; profiles=(char **) ResizeQuantumMemory(profiles,length, sizeof(*profiles)); if (profiles == (char **) NULL) { (void) ThrowMagickException(wand->exception,GetMagickModule(), ResourceLimitError,"MemoryAllocationFailed","`%s'", wand->name); return((char **) NULL); } } profiles[i]=ConstantString(property); i++; } property=GetNextImageProfile(wand->images); } profiles[i]=(char *) NULL; *number_profiles=(unsigned long) i; return(profiles); } /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % M a g i c k G e t I m a g e P r o p e r t y % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % MagickGetImageProperty() returns a value associated with the specified % property. Use MagickRelinquishMemory() to free the value when you are % finished with it. % % The format of the MagickGetImageProperty method is: % % char *MagickGetImageProperty(MagickWand *wand,const char *property) % % A description of each parameter follows: % % o wand: The magick wand. % % o property: The property. % */ WandExport char *MagickGetImageProperty(MagickWand *wand,const char *property) { const char *value; assert(wand != (MagickWand *) NULL); assert(wand->signature == WandSignature); if (wand->debug != MagickFalse) (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); if (wand->images == (Image *) NULL) { (void) ThrowMagickException(wand->exception,GetMagickModule(),WandError, "ContainsNoImages","`%s'",wand->name); return((char *) NULL); } value=GetImageProperty(wand->images,property); if (value == (const char *) NULL) return((char *) NULL); return(ConstantString(value)); } /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % M a g i c k G e t I m a g e P r o p e r t i e s % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % MagickGetImageProperties() returns all the property names that match the % specified pattern associated with a wand. Use MagickGetImageProperty() to % return the value of a particular property. Use MagickRelinquishMemory() to % free the value when you are finished with it. % % The format of the MagickGetImageProperties method is: % % char *MagickGetImageProperties(MagickWand *wand, % const char *pattern,unsigned long *number_properties) % % A description of each parameter follows: % % o wand: The magick wand. % % o pattern: Specifies a pointer to a text string containing a pattern. % % o number_properties: The number properties associated with this wand. % */ WandExport char **MagickGetImageProperties(MagickWand *wand, const char *pattern,unsigned long *number_properties) { char **properties; const char *property; register long i; size_t length; assert(wand != (MagickWand *) NULL); assert(wand->signature == WandSignature); if (wand->debug != MagickFalse) (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); if (wand->images == (Image *) NULL) { (void) ThrowMagickException(wand->exception,GetMagickModule(),WandError, "ContainsNoImages","`%s'",wand->name); return((char **) NULL); } (void) GetImageProperty(wand->images,"exif:*"); length=1024; properties=(char **) AcquireQuantumMemory(length,sizeof(*properties)); if (properties == (char **) NULL) return((char **) NULL); ResetImagePropertyIterator(wand->images); property=GetNextImageProperty(wand->images); for (i=0; property != (const char *) NULL; ) { if ((*property != '[') && (GlobExpression(property,pattern,MagickFalse) != MagickFalse)) { if ((i+1) >= (long) length) { length<<=1; properties=(char **) ResizeQuantumMemory(properties,length, sizeof(*properties)); if (properties == (char **) NULL) { (void) ThrowMagickException(wand->exception,GetMagickModule(), ResourceLimitError,"MemoryAllocationFailed","`%s'", wand->name); return((char **) NULL); } } properties[i]=ConstantString(property); i++; } property=GetNextImageProperty(wand->images); } properties[i]=(char *) NULL; *number_properties=(unsigned long) i; return(properties); } /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % M a g i c k G e t I n t e r l a c e S c h e m e % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % MagickGetInterlaceScheme() gets the wand interlace scheme. % % The format of the MagickGetInterlaceScheme method is: % % InterlaceType MagickGetInterlaceScheme(MagickWand *wand) % % A description of each parameter follows: % % o wand: The magick wand. % */ WandExport InterlaceType MagickGetInterlaceScheme(MagickWand *wand) { assert(wand != (MagickWand *) NULL); assert(wand->signature == WandSignature); if (wand->debug != MagickFalse) (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); return(wand->image_info->interlace); } /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % M a g i c k G e t I n t e r p o l a t e M e t h o d % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % MagickGetInterpolateMethod() gets the wand compression. % % The format of the MagickGetInterpolateMethod method is: % % InterpolatePixelMethod MagickGetInterpolateMethod(MagickWand *wand) % % A description of each parameter follows: % % o wand: The magick wand. % */ WandExport InterpolatePixelMethod MagickGetInterpolateMethod(MagickWand *wand) { const char *option; InterpolatePixelMethod method; assert(wand != (MagickWand *) NULL); assert(wand->signature == WandSignature); if (wand->debug != MagickFalse) (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); option=GetImageOption(wand->image_info,"interpolate"); if (option == (const char *) NULL) return(UndefinedInterpolatePixel); method=(InterpolatePixelMethod) ParseMagickOption(MagickInterpolateOptions, MagickFalse,option); return(method); } /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % M a g i c k G e t O p t i o n % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % MagickGetOption() returns a value associated with a wand and the specified % key. Use MagickRelinquishMemory() to free the value when you are finished % with it. % % The format of the MagickGetOption method is: % % char *MagickGetOption(MagickWand *wand,const char *key) % % A description of each parameter follows: % % o wand: The magick wand. % % o key: The key. % */ WandExport char *MagickGetOption(MagickWand *wand,const char *key) { const char *option; assert(wand != (MagickWand *) NULL); assert(wand->signature == WandSignature); if (wand->debug != MagickFalse) (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); option=GetImageOption(wand->image_info,key); return(ConstantString(option)); } /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % M a g i c k G e t O p t i o n % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % MagickGetOptions() returns all the option names that match the specified % pattern associated with a wand. Use MagickGetOption() to return the value % of a particular option. Use MagickRelinquishMemory() to free the value % when you are finished with it. % % The format of the MagickGetOptions method is: % % char *MagickGetOptions(MagickWand *wand,unsigned long *number_options) % % A description of each parameter follows: % % o wand: The magick wand. % % o pattern: Specifies a pointer to a text string containing a pattern. % % o number_options: The number options associated with this wand. % */ WandExport char **MagickGetOptions(MagickWand *wand,const char *pattern, unsigned long *number_options) { char **options; const char *option; register long i; size_t length; assert(wand != (MagickWand *) NULL); assert(wand->signature == WandSignature); if (wand->debug != MagickFalse) (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); if (wand->images == (Image *) NULL) { (void) ThrowMagickException(wand->exception,GetMagickModule(),WandError, "ContainsNoImages","`%s'",wand->name); return((char **) NULL); } length=1024; options=(char **) AcquireQuantumMemory(length,sizeof(*options)); if (options == (char **) NULL) return((char **) NULL); ResetImageOptionIterator(wand->image_info); option=GetNextImageOption(wand->image_info); for (i=0; option != (const char *) NULL; ) { if ((*option != '[') && (GlobExpression(option,pattern,MagickFalse) != MagickFalse)) { if ((i+1) >= (long) length) { length<<=1; options=(char **) ResizeQuantumMemory(options,length, sizeof(*options)); if (options == (char **) NULL) { (void) ThrowMagickException(wand->exception,GetMagickModule(), ResourceLimitError,"MemoryAllocationFailed","`%s'", wand->name); return((char **) NULL); } } options[i]=ConstantString(option); i++; } option=GetNextImageOption(wand->image_info); } options[i]=(char *) NULL; *number_options=(unsigned long) i; return(options); } /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % M a g i c k G e t O r i e n t a t i o n % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % MagickGetOrientation() gets the wand orientation type. % % The format of the MagickGetOrientation method is: % % OrientationType MagickGetOrientation(MagickWand *wand) % % A description of each parameter follows: % % o wand: The magick wand. % */ WandExport OrientationType MagickGetOrientation(MagickWand *wand) { assert(wand != (MagickWand *) NULL); assert(wand->signature == WandSignature); if (wand->debug != MagickFalse) (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); return(wand->image_info->orientation); } /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % M a g i c k G e t P a c k a g e N a m e % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % MagickGetPackageName() returns the ImageMagick package name as a string % constant. % % The format of the MagickGetPackageName method is: % % const char *MagickGetPackageName(void) % % */ WandExport const char *MagickGetPackageName(void) { return(GetMagickPackageName()); } /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % M a g i c k G e t P a g e % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % MagickGetPage() returns the page geometry associated with the magick wand. % % The format of the MagickGetPage method is: % % MagickBooleanType MagickGetPage(const MagickWand *wand, % unsigned long *width,unsigned long *height,long *x,long *y) % % A description of each parameter follows: % % o wand: The magick wand. % % o width: The page width. % % o height: page height. % % o x: The page x-offset. % % o y: The page y-offset. % */ WandExport MagickBooleanType MagickGetPage(const MagickWand *wand, unsigned long *width,unsigned long *height,long *x,long *y) { RectangleInfo geometry; assert(wand != (const MagickWand *) NULL); assert(wand->signature == WandSignature); if (wand->debug != MagickFalse) (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); (void) ResetMagickMemory(&geometry,0,sizeof(geometry)); (void) ParseAbsoluteGeometry(wand->image_info->page,&geometry); *width=geometry.width; *height=geometry.height; *x=geometry.x; *y=geometry.y; return(MagickTrue); } /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % M a g i c k G e t P o i n t s i z e % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % MagickGetPointsize() returns the font pointsize associated with the % MagickWand. % % The format of the MagickGetPointsize method is: % % double MagickGetPointsize(MagickWand *wand) % % A description of each parameter follows: % % o wand: The magick wand. % */ WandExport double MagickGetPointsize(MagickWand *wand) { assert(wand != (MagickWand *) NULL); assert(wand->signature == WandSignature); if (wand->debug != MagickFalse) (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); return(wand->image_info->pointsize); } /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % M a g i c k G e t Q u a n t u m D e p t h % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % MagickGetQuantumDepth() returns the ImageMagick quantum depth as a string % constant. % % The format of the MagickGetQuantumDepth method is: % % const char *MagickGetQuantumDepth(unsigned long *depth) % % A description of each parameter follows: % % o depth: The quantum depth is returned as a number. % % */ WandExport const char *MagickGetQuantumDepth(unsigned long *depth) { return(GetMagickQuantumDepth(depth)); } /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % M a g i c k G e t Q u a n t u m R a n g e % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % MagickGetQuantumRange() returns the ImageMagick quantum range as a string % constant. % % The format of the MagickGetQuantumRange method is: % % const char *MagickGetQuantumRange(unsigned long *range) % % A description of each parameter follows: % % o range: The quantum range is returned as a number. % % */ WandExport const char *MagickGetQuantumRange(unsigned long *range) { return(GetMagickQuantumRange(range)); } /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % M a g i c k G e t R e l e a s e D a t e % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % MagickGetReleaseDate() returns the ImageMagick release date as a string % constant. % % The format of the MagickGetReleaseDate method is: % % const char *MagickGetReleaseDate(void) % */ WandExport const char *MagickGetReleaseDate(void) { return(GetMagickReleaseDate()); } /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % M a g i c k G e t R e s o u r c e % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % MagickGetResource() returns the specified resource in megabytes. % % The format of the MagickGetResource method is: % % unsigned long MagickGetResource(const ResourceType type) % % A description of each parameter follows: % % o wand: The magick wand. % */ WandExport unsigned long MagickGetResource(const ResourceType type) { return(GetMagickResource(type)); } /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % M a g i c k G e t R e s o u r c e L i m i t % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % MagickGetResourceLimit() returns the specified resource limit in megabytes. % % The format of the MagickGetResourceLimit method is: % % unsigned long MagickGetResourceLimit(const ResourceType type) % % A description of each parameter follows: % % o wand: The magick wand. % */ WandExport unsigned long MagickGetResourceLimit(const ResourceType type) { return(GetMagickResourceLimit(type)); } /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % M a g i c k G e t S a m p l i n g F a c t o r s % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % MagickGetSamplingFactors() gets the horizontal and vertical sampling factor. % % The format of the MagickGetSamplingFactors method is: % % double *MagickGetSamplingFactor(MagickWand *wand, % unsigned long *number_factors) % % A description of each parameter follows: % % o wand: The magick wand. % % o number_factors: The number of factors in the returned array. % */ WandExport double *MagickGetSamplingFactors(MagickWand *wand, unsigned long *number_factors) { double *sampling_factors; register const char *p; register long i; assert(wand != (MagickWand *) NULL); assert(wand->signature == WandSignature); if (wand->debug != MagickFalse) (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); *number_factors=0; sampling_factors=(double *) NULL; if (wand->image_info->sampling_factor == (char *) NULL) return(sampling_factors); i=0; for (p=wand->image_info->sampling_factor; p != (char *) NULL; p=strchr(p,',')) { while (((int) *p != 0) && ((isspace((int) ((unsigned char) *p)) != 0) || (*p == ','))) p++; i++; } sampling_factors=(double *) AcquireQuantumMemory((size_t) i, sizeof(*sampling_factors)); if (sampling_factors == (double *) NULL) ThrowWandFatalException(ResourceLimitFatalError,"MemoryAllocationFailed", wand->image_info->filename); i=0; for (p=wand->image_info->sampling_factor; p != (char *) NULL; p=strchr(p,',')) { while (((int) *p != 0) && ((isspace((int) ((unsigned char) *p)) != 0) || (*p == ','))) p++; sampling_factors[i]=atof(p); i++; } *number_factors=(unsigned long) i; return(sampling_factors); } /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % M a g i c k G e t S i z e % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % MagickGetSize() returns the size associated with the magick wand. % % The format of the MagickGetSize method is: % % MagickBooleanType MagickGetSize(const MagickWand *wand, % unsigned long *columns,unsigned long *rows) % % A description of each parameter follows: % % o wand: The magick wand. % % o columns: The width in pixels. % % o height: The height in pixels. % */ WandExport MagickBooleanType MagickGetSize(const MagickWand *wand, unsigned long *columns,unsigned long *rows) { RectangleInfo geometry; assert(wand != (const MagickWand *) NULL); assert(wand->signature == WandSignature); if (wand->debug != MagickFalse) (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); (void) ResetMagickMemory(&geometry,0,sizeof(geometry)); (void) ParseAbsoluteGeometry(wand->image_info->size,&geometry); *columns=geometry.width; *rows=geometry.height; return(MagickTrue); } /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % M a g i c k G e t S i z e O f f s e t % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % MagickGetSizeOffset() returns the size offset associated with the magick % wand. % % The format of the MagickGetSizeOffset method is: % % MagickBooleanType MagickGetSizeOffset(const MagickWand *wand, % long *offset) % % A description of each parameter follows: % % o wand: The magick wand. % % o offset: The image offset. % */ WandExport MagickBooleanType MagickGetSizeOffset(const MagickWand *wand, long *offset) { RectangleInfo geometry; assert(wand != (const MagickWand *) NULL); assert(wand->signature == WandSignature); if (wand->debug != MagickFalse) (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); (void) ResetMagickMemory(&geometry,0,sizeof(geometry)); (void) ParseAbsoluteGeometry(wand->image_info->size,&geometry); *offset=geometry.x; return(MagickTrue); } /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % M a g i c k G e t T y p e % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % MagickGetType() returns the wand type. % % The format of the MagickGetType method is: % % ImageType MagickGetType(MagickWand *wand) % % A description of each parameter follows: % % o wand: The magick wand. % */ WandExport ImageType MagickGetType(MagickWand *wand) { assert(wand != (MagickWand *) NULL); assert(wand->signature == WandSignature); if (wand->debug != MagickFalse) (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); return(wand->image_info->type); } /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % M a g i c k G e t V e r s i o n % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % MagickGetVersion() returns the ImageMagick API version as a string constant % and as a number. % % The format of the MagickGetVersion method is: % % const char *MagickGetVersion(unsigned long *version) % % A description of each parameter follows: % % o version: The ImageMagick version is returned as a number. % */ WandExport const char *MagickGetVersion(unsigned long *version) { return(GetMagickVersion(version)); } /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % M a g i c k P r o f i l e I m a g e % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % MagickProfileImage() 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 MagickProfileImage method is: % % MagickBooleanType MagickProfileImage(MagickWand *wand,const char *name, % const void *profile,const size_t length) % % A description of each parameter follows: % % o wand: The magick wand. % % o name: Name of profile to add or remove: ICC, IPTC, or generic profile. % % o profile: The profile. % % o length: The length of the profile. % */ WandExport MagickBooleanType MagickProfileImage(MagickWand *wand, const char *name,const void *profile,const size_t length) { MagickBooleanType status; assert(wand != (MagickWand *) NULL); assert(wand->signature == WandSignature); if (wand->debug != MagickFalse) (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); if (wand->images == (Image *) NULL) ThrowWandException(WandError,"ContainsNoImages",wand->name); status=ProfileImage(wand->images,name,profile,length,MagickTrue); if (status == MagickFalse) InheritException(wand->exception,&wand->images->exception); return(status); } /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % M a g i c k R e m o v e I m a g e P r o f i l e % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % MagickRemoveImageProfile() removes the named image profile and returns it. % % The format of the MagickRemoveImageProfile method is: % % unsigned char *MagickRemoveImageProfile(MagickWand *wand, % const char *name,size_t *length) % % A description of each parameter follows: % % o wand: The magick wand. % % o name: Name of profile to return: ICC, IPTC, or generic profile. % % o length: The length of the profile. % */ WandExport unsigned char *MagickRemoveImageProfile(MagickWand *wand, const char *name,size_t *length) { StringInfo *profile; unsigned char *datum; assert(wand != (MagickWand *) NULL); assert(wand->signature == WandSignature); if (wand->debug != MagickFalse) (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); if (wand->images == (Image *) NULL) { (void) ThrowMagickException(wand->exception,GetMagickModule(),WandError, "ContainsNoImages","`%s'",wand->name); return((unsigned char *) NULL); } *length=0; profile=RemoveImageProfile(wand->images,name); if (profile == (StringInfo *) NULL) return((unsigned char *) NULL); datum=(unsigned char *) AcquireQuantumMemory(GetStringInfoLength(profile), sizeof(*datum)); if (datum == (unsigned char *) NULL) return((unsigned char *) NULL); (void) CopyMagickMemory(datum,GetStringInfoDatum(profile), GetStringInfoLength(profile)); *length=GetStringInfoLength(profile); profile=DestroyStringInfo(profile); return(datum); } /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % M a g i c k S e t A n t i a l i a s % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % MagickSetAntialias() sets the antialias propery of the wand. % % The format of the MagickSetAntialias method is: % % MagickBooleanType MagickSetAntialias(MagickWand *wand, % const MagickBooleanType antialias) % % A description of each parameter follows: % % o wand: The magick wand. % % o antialias: The antialias property. % */ WandExport MagickBooleanType MagickSetAntialias(MagickWand *wand, const MagickBooleanType antialias) { assert(wand != (MagickWand *) NULL); assert(wand->signature == WandSignature); if (wand->debug != MagickFalse) (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); wand->image_info->antialias=antialias; return(MagickTrue); } /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % M a g i c k S e t B a c k g r o u n d C o l o r % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % MagickSetBackgroundColor() sets the wand background color. % % The format of the MagickSetBackgroundColor method is: % % MagickBooleanType MagickSetBackgroundColor(MagickWand *wand, % const PixelWand *background) % % A description of each parameter follows: % % o wand: The magick wand. % % o background: The background pixel wand. % */ WandExport MagickBooleanType MagickSetBackgroundColor(MagickWand *wand, const PixelWand *background) { assert(wand != (MagickWand *) NULL); assert(wand->signature == WandSignature); if (wand->debug != MagickFalse) (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); PixelGetQuantumColor(background,&wand->image_info->background_color); return(MagickTrue); } /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % M a g i c k S e t C o m p r e s s i o n % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % MagickSetCompression() sets the wand compression type. % % The format of the MagickSetCompression method is: % % MagickBooleanType MagickSetCompression(MagickWand *wand, % const CompressionType compression) % % A description of each parameter follows: % % o wand: The magick wand. % % o compression: The wand compression. % */ WandExport MagickBooleanType MagickSetCompression(MagickWand *wand, const CompressionType compression) { assert(wand != (MagickWand *) NULL); assert(wand->signature == WandSignature); if (wand->debug != MagickFalse) (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); wand->image_info->compression=compression; return(MagickTrue); } /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % M a g i c k S e t C o m p r e s s i o n Q u a l i t y % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % MagickSetCompressionQuality() sets the wand compression quality. % % The format of the MagickSetCompressionQuality method is: % % MagickBooleanType MagickSetCompressionQuality(MagickWand *wand, % const unsigned long quality) % % A description of each parameter follows: % % o wand: The magick wand. % % o quality: The wand compression quality. % */ WandExport MagickBooleanType MagickSetCompressionQuality(MagickWand *wand, const unsigned long quality) { assert(wand != (MagickWand *) NULL); assert(wand->signature == WandSignature); if (wand->debug != MagickFalse) (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); wand->image_info->quality=quality; return(MagickTrue); } /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % M a g i c k S e t D e p t h % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % MagickSetDepth() sets the wand pixel depth. % % The format of the MagickSetDepth method is: % % MagickBooleanType MagickSetDepth(MagickWand *wand, % const unsigned long depth) % % A description of each parameter follows: % % o wand: The magick wand. % % o depth: The wand pixel depth. % */ WandExport MagickBooleanType MagickSetDepth(MagickWand *wand, const unsigned long depth) { assert(wand != (MagickWand *) NULL); assert(wand->signature == WandSignature); if (wand->debug != MagickFalse) (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); wand->image_info->depth=depth; return(MagickTrue); } /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % M a g i c k S e t F i l e n a m e % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % MagickSetFilename() sets the filename before you read or write an image file. % % The format of the MagickSetFilename method is: % % MagickBooleanType MagickSetFilename(MagickWand *wand, % const char *filename) % % A description of each parameter follows: % % o wand: The magick wand. % % o filename: The image filename. % */ WandExport MagickBooleanType MagickSetFilename(MagickWand *wand, const char *filename) { assert(wand != (MagickWand *) NULL); assert(wand->signature == WandSignature); if (wand->debug != MagickFalse) (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); if (filename != (const char *) NULL) (void) CopyMagickString(wand->image_info->filename,filename,MaxTextExtent); return(MagickTrue); } /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % M a g i c k S e t F o n t % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % MagickSetFont() sets the font associated with the MagickWand. % % The format of the MagickSetFont method is: % % MagickBooleanType MagickSetFont(MagickWand *wand, const char *font) % % A description of each parameter follows: % % o wand: The magick wand. % % o font: the font % */ WandExport MagickBooleanType MagickSetFont(MagickWand *wand,const char *font) { if ((font == (const char *) NULL) || (*font == '\0')) return(MagickFalse); assert(wand != (MagickWand *) NULL); assert(wand->signature == WandSignature); if (wand->debug != MagickFalse) (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); (void) CloneString(&wand->image_info->font,font); return(MagickTrue); } /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % M a g i c k S e t F o r m a t % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % MagickSetFormat() sets the format of the magick wand. % % The format of the MagickSetFormat method is: % % MagickBooleanType MagickSetFormat(MagickWand *wand,const char *format) % % A description of each parameter follows: % % o wand: The magick wand. % % o format: The image format. % */ WandExport MagickBooleanType MagickSetFormat(MagickWand *wand, const char *format) { const MagickInfo *magick_info; assert(wand != (MagickWand *) NULL); assert(wand->signature == WandSignature); if (wand->debug != MagickFalse) (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); if ((format == (char *) NULL) || (*format == '\0')) { *wand->image_info->magick='\0'; return(MagickTrue); } magick_info=GetMagickInfo(format,wand->exception); if (magick_info == (const MagickInfo *) NULL) return(MagickFalse); ClearMagickException(wand->exception); (void) CopyMagickString(wand->image_info->magick,format,MaxTextExtent); return(MagickTrue); } /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % M a g i c k S e t P r o f i l e I m a g e % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % MagickSetImageProfile() adds a named profile to the magick wand. If a % profile with the same name already exists, it is replaced. This method % differs from the MagickProfileImage() method in that it does not apply any % CMS color profiles. % % The format of the MagickSetImageProfile method is: % % MagickBooleanType MagickSetImageProfile(MagickWand *wand, % const char *name,const void *profile,const size_t length) % % A description of each parameter follows: % % o wand: The magick wand. % % o name: Name of profile to add or remove: ICC, IPTC, or generic profile. % % o profile: The profile. % % o length: The length of the profile. % */ WandExport MagickBooleanType MagickSetImageProfile(MagickWand *wand, const char *name,const void *profile,const size_t length) { MagickBooleanType status; StringInfo *profile_info; assert(wand != (MagickWand *) NULL); assert(wand->signature == WandSignature); if (wand->debug != MagickFalse) (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); if (wand->images == (Image *) NULL) ThrowWandException(WandError,"ContainsNoImages",wand->name); profile_info=AcquireStringInfo((size_t) length); SetStringInfoDatum(profile_info,(unsigned char *) profile); status=SetImageProfile(wand->images,name,profile_info); if (status == MagickFalse) InheritException(wand->exception,&wand->images->exception); return(status); } /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % M a g i c k S e t I m a g e P r o p e r t y % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % MagickSetImageProperty() associates a property with an image. % % The format of the MagickSetImageProperty method is: % % MagickBooleanType MagickSetImageProperty(MagickWand *wand, % const char *property,const char *value) % % A description of each parameter follows: % % o wand: The magick wand. % % o property: The property. % % o value: The value. % */ WandExport MagickBooleanType MagickSetImageProperty(MagickWand *wand, const char *property,const char *value) { MagickBooleanType status; assert(wand != (MagickWand *) NULL); assert(wand->signature == WandSignature); if (wand->debug != MagickFalse) (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); if (wand->images == (Image *) NULL) ThrowWandException(WandError,"ContainsNoImages",wand->name); status=SetImageProperty(wand->images,property,value); if (status == MagickFalse) InheritException(wand->exception,&wand->images->exception); return(status); } /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % M a g i c k S e t I n t e r l a c e S c h e m e % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % MagickSetInterlaceScheme() sets the image compression. % % The format of the MagickSetInterlaceScheme method is: % % MagickBooleanType MagickSetInterlaceScheme(MagickWand *wand, % const InterlaceType interlace_scheme) % % A description of each parameter follows: % % o wand: The magick wand. % % o interlace_scheme: The image interlace scheme: NoInterlace, LineInterlace, % PlaneInterlace, PartitionInterlace. % */ WandExport MagickBooleanType MagickSetInterlaceScheme(MagickWand *wand, const InterlaceType interlace_scheme) { assert(wand != (MagickWand *) NULL); assert(wand->signature == WandSignature); if (wand->debug != MagickFalse) (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); wand->image_info->interlace=interlace_scheme; return(MagickTrue); } /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % M a g i c k S e t I n t e r p o l a t e M e t h o d % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % MagickSetInterpolateMethod() sets the interpolate pixel method. % % The format of the MagickSetInterpolateMethod method is: % % MagickBooleanType MagickSetInterpolateMethod(MagickWand *wand, % const InterpolateMethodPixel method) % % A description of each parameter follows: % % o wand: The magick wand. % % o method: The interpolate pixel method. % */ WandExport MagickBooleanType MagickSetInterpolateMethod(MagickWand *wand, const InterpolatePixelMethod method) { MagickBooleanType status; assert(wand != (MagickWand *) NULL); assert(wand->signature == WandSignature); if (wand->debug != MagickFalse) (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); status=SetImageOption(wand->image_info,"interpolate", MagickOptionToMnemonic(MagickInterpolateOptions,(long) method)); return(status); } /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % M a g i c k S e t O p t i o n % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % MagickSetOption() associates one or options with the wand (.e.g % MagickSetOption(wand,"jpeg:perserve","yes")). % % The format of the MagickSetOption method is: % % MagickBooleanType MagickSetOption(MagickWand *wand,const char *key, % const char *value) % % A description of each parameter follows: % % o wand: The magick wand. % % o key: The key. % % o value: The value. % */ WandExport MagickBooleanType MagickSetOption(MagickWand *wand,const char *key, const char *value) { assert(wand != (MagickWand *) NULL); assert(wand->signature == WandSignature); if (wand->debug != MagickFalse) (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); return(SetImageOption(wand->image_info,key,value)); } /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % M a g i c k S e t O r i e n t a t i o n % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % MagickSetOrientation() sets the wand orientation type. % % The format of the MagickSetOrientation method is: % % MagickBooleanType MagickSetOrientation(MagickWand *wand, % const OrientationType orientation) % % A description of each parameter follows: % % o wand: The magick wand. % % o orientation: The wand orientation. % */ WandExport MagickBooleanType MagickSetOrientation(MagickWand *wand, const OrientationType orientation) { assert(wand != (MagickWand *) NULL); assert(wand->signature == WandSignature); if (wand->debug != MagickFalse) (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); wand->image_info->orientation=orientation; return(MagickTrue); } /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % M a g i c k S e t P a g e % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % MagickSetPage() sets the page geometry of the magick wand. % % The format of the MagickSetPage method is: % % MagickBooleanType MagickSetPage(MagickWand *wand, % const unsigned long width,const unsigned long height,const long x, % const long y) % % A description of each parameter follows: % % o wand: The magick wand. % % o width: The page width. % % o height: The page height. % % o x: The page x-offset. % % o y: The page y-offset. % */ WandExport MagickBooleanType MagickSetPage(MagickWand *wand, const unsigned long width,const unsigned long height,const long x, const long y) { char geometry[MaxTextExtent]; assert(wand != (MagickWand *) NULL); assert(wand->signature == WandSignature); if (wand->debug != MagickFalse) (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); (void) FormatMagickString(geometry,MaxTextExtent,"%lux%lu%+ld%+ld", width,height,x,y); (void) CloneString(&wand->image_info->page,geometry); return(MagickTrue); } /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % M a g i c k S e t P a s s p h r a s e % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % MagickSetPassphrase() sets the passphrase. % % The format of the MagickSetPassphrase method is: % % MagickBooleanType MagickSetPassphrase(MagickWand *wand, % const char *passphrase) % % A description of each parameter follows: % % o wand: The magick wand. % % o passphrase: The passphrase. % */ WandExport MagickBooleanType MagickSetPassphrase(MagickWand *wand, const char *passphrase) { assert(wand != (MagickWand *) NULL); assert(wand->signature == WandSignature); if (wand->debug != MagickFalse) (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); (void) CloneString(&wand->image_info->authenticate,passphrase); return(MagickTrue); } /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % M a g i c k S e t P o i n t s i z e % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % MagickSetPointsize() sets the font pointsize associated with the MagickWand. % % The format of the MagickSetPointsize method is: % % MagickBooleanType MagickSetPointsize(MagickWand *wand, % const double pointsize) % % A description of each parameter follows: % % o wand: The magick wand. % % o pointsize: the size of the font % */ WandExport MagickBooleanType MagickSetPointsize(MagickWand *wand, const double pointsize) { assert(wand != (MagickWand *) NULL); assert(wand->signature == WandSignature); if (wand->debug != MagickFalse) (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); wand->image_info->pointsize=pointsize; return(MagickTrue); } /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % M a g i c k S e t P r o g r e s s M o n i t o r % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % MagickSetProgressMonitor() sets the wand progress monitor to the specified % method and returns the previous progress monitor if any. The progress % monitor method looks like this: % % MagickBooleanType MagickProgressMonitor(const char *text, % const MagickOffsetType offset,const MagickSizeType span, % void *client_data) % % If the progress monitor returns MagickFalse, the current operation is % interrupted. % % The format of the MagickSetProgressMonitor method is: % % MagickProgressMonitor MagickSetProgressMonitor(MagickWand *wand % const MagickProgressMonitor progress_monitor,void *client_data) % % A description of each parameter follows: % % o wand: The magick wand. % % o progress_monitor: Specifies a pointer to a method to monitor progress % of an image operation. % % o client_data: Specifies a pointer to any client data. % */ WandExport MagickProgressMonitor MagickSetProgressMonitor(MagickWand *wand, const MagickProgressMonitor progress_monitor,void *client_data) { MagickProgressMonitor previous_monitor; assert(wand != (MagickWand *) NULL); assert(wand->signature == WandSignature); if (wand->debug != MagickFalse) (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); previous_monitor=SetImageInfoProgressMonitor(wand->image_info, progress_monitor,client_data); return(previous_monitor); } /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % M a g i c k S e t R e s o u r c e L i m i t % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % MagickSetResourceLimit() sets the limit for a particular resource in % megabytes. % % The format of the MagickSetResourceLimit method is: % % MagickBooleanType MagickSetResourceLimit(const ResourceType type, % const unsigned long *limit) % % A description of each parameter follows: % % o type: The type of resource: AreaResource, MemoryResource, MapResource, % DiskResource, FileResource. % % o The maximum limit for the resource. % */ WandExport MagickBooleanType MagickSetResourceLimit(const ResourceType type, const unsigned long limit) { return(SetMagickResourceLimit(type,limit)); } /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % M a g i c k S e t R e s o l u t i o n % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % MagickSetResolution() sets the image resolution. % % The format of the MagickSetResolution method is: % % MagickBooleanType MagickSetResolution(MagickWand *wand, % const double x_resolution,const doubtl y_resolution) % % A description of each parameter follows: % % o wand: The magick wand. % % o x_resolution: The image x resolution. % % o y_resolution: The image y resolution. % */ WandExport MagickBooleanType MagickSetResolution(MagickWand *wand, const double x_resolution,const double y_resolution) { char density[MaxTextExtent]; assert(wand != (MagickWand *) NULL); assert(wand->signature == WandSignature); if (wand->debug != MagickFalse) (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); (void) FormatMagickString(density,MaxTextExtent,"%gx%g",x_resolution, y_resolution); (void) CloneString(&wand->image_info->density,density); return(MagickTrue); } /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % M a g i c k S e t S a m p l i n g F a c t o r s % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % MagickSetSamplingFactors() sets the image sampling factors. % % The format of the MagickSetSamplingFactors method is: % % MagickBooleanType MagickSetSamplingFactors(MagickWand *wand, % const unsigned long number_factors,const double *sampling_factors) % % A description of each parameter follows: % % o wand: The magick wand. % % o number_factoes: The number of factors. % % o sampling_factors: An array of doubles representing the sampling factor % for each color component (in RGB order). % */ WandExport MagickBooleanType MagickSetSamplingFactors(MagickWand *wand, const unsigned long number_factors,const double *sampling_factors) { char sampling_factor[MaxTextExtent]; register long i; assert(wand != (MagickWand *) NULL); assert(wand->signature == WandSignature); if (wand->debug != MagickFalse) (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); if (wand->image_info->sampling_factor != (char *) NULL) wand->image_info->sampling_factor=(char *) RelinquishMagickMemory(wand->image_info->sampling_factor); if (number_factors == 0) return(MagickTrue); for (i=0; i < (long) (number_factors-1); i++) { (void) FormatMagickString(sampling_factor,MaxTextExtent,"%g,", sampling_factors[i]); (void) ConcatenateString(&wand->image_info->sampling_factor, sampling_factor); } (void) FormatMagickString(sampling_factor,MaxTextExtent,"%g", sampling_factors[i]); (void) ConcatenateString(&wand->image_info->sampling_factor,sampling_factor); return(MagickTrue); } /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % M a g i c k S e t S i z e % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % MagickSetSize() sets the size of the magick wand. Set it before you % read a raw image format such as RGB, GRAY, or CMYK. % % The format of the MagickSetSize method is: % % MagickBooleanType MagickSetSize(MagickWand *wand, % const unsigned long columns,const unsigned long rows) % % A description of each parameter follows: % % o wand: The magick wand. % % o columns: The width in pixels. % % o rows: The rows in pixels. % */ WandExport MagickBooleanType MagickSetSize(MagickWand *wand, const unsigned long columns,const unsigned long rows) { char geometry[MaxTextExtent]; assert(wand != (MagickWand *) NULL); assert(wand->signature == WandSignature); if (wand->debug != MagickFalse) (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); (void) FormatMagickString(geometry,MaxTextExtent,"%lux%lu",columns,rows); (void) CloneString(&wand->image_info->size,geometry); return(MagickTrue); } /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % M a g i c k S e t S i z e O f f s e t % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % MagickSetSizeOffset() sets the size and offset of the magick wand. Set it % before you read a raw image format such as RGB, GRAY, or CMYK. % % The format of the MagickSetSizeOffset method is: % % MagickBooleanType MagickSetSizeOffset(MagickWand *wand, % const unsigned long columns,const unsigned long rows, % const long offset) % % A description of each parameter follows: % % o wand: The magick wand. % % o columns: The width in pixels. % % o rows: The rows in pixels. % */ WandExport MagickBooleanType MagickSetSizeOffset(MagickWand *wand, const unsigned long columns,const unsigned long rows,const long offset) { char geometry[MaxTextExtent]; assert(wand != (MagickWand *) NULL); assert(wand->signature == WandSignature); if (wand->debug != MagickFalse) (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); (void) FormatMagickString(geometry,MaxTextExtent,"%lux%lu%+ld",columns,rows, offset); (void) CloneString(&wand->image_info->size,geometry); return(MagickTrue); } /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % M a g i c k S e t T y p e % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % MagickSetType() sets the image type attribute. % % The format of the MagickSetType method is: % % MagickBooleanType MagickSetType(MagickWand *wand, % const ImageType image_type) % % A description of each parameter follows: % % o wand: The magick wand. % % o image_type: The image type: UndefinedType, BilevelType, GrayscaleType, % GrayscaleMatteType, PaletteType, PaletteMatteType, TrueColorType, % TrueColorMatteType, ColorSeparationType, ColorSeparationMatteType, % or OptimizeType. % */ WandExport MagickBooleanType MagickSetType(MagickWand *wand, const ImageType image_type) { assert(wand != (MagickWand *) NULL); assert(wand->signature == WandSignature); if (wand->debug != MagickFalse) (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); wand->image_info->type=image_type; return(MagickTrue); }