1/* 2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 3% % 4% % 5% % 6% M M AAA GGGG IIIII CCCC K K % 7% MM MM A A G I C K K % 8% M M M AAAAA G GGG I C KKK % 9% M M A A G G I C K K % 10% M M A A GGGG IIIII CCCC K K % 11% % 12% PPPP RRRR OOO PPPP EEEEE RRRR TTTTT Y Y % 13% P P R R O O P P E R R T Y Y % 14% PPPP RRRR O O PPPP EEE RRRR T Y % 15% P R R O O P E R R T Y % 16% P R R OOO P EEEEE R R T Y % 17% % 18% % 19% Set or Get MagickWand Properties, Options, or Profiles % 20% % 21% Software Design % 22% Cristy % 23% August 2003 % 24% % 25% % 26% Copyright 1999-2016 ImageMagick Studio LLC, a non-profit organization % 27% dedicated to making software imaging solutions freely available. % 28% % 29% You may not use this file except in compliance with the License. You may % 30% obtain a copy of the License at % 31% % 32% http://www.imagemagick.org/script/license.php % 33% % 34% Unless required by applicable law or agreed to in writing, software % 35% distributed under the License is distributed on an "AS IS" BASIS, % 36% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. % 37% See the License for the specific language governing permissions and % 38% limitations under the License. % 39% % 40%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 41% 42% 43% 44*/ 45 46/* 47 Include declarations. 48*/ 49#include "MagickWand/studio.h" 50#include "MagickWand/MagickWand.h" 51#include "MagickWand/magick-wand-private.h" 52#include "MagickWand/wand.h" 53#include "MagickCore/string-private.h" 54 55/* 56%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 57% % 58% % 59% % 60% M a g i c k D e l e t e I m a g e A r t i f a c t % 61% % 62% % 63% % 64%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 65% 66% MagickDeleteImageArtifact() deletes a wand artifact. 67% 68% The format of the MagickDeleteImageArtifact method is: 69% 70% MagickBooleanType MagickDeleteImageArtifact(MagickWand *wand, 71% const char *artifact) 72% 73% A description of each parameter follows: 74% 75% o image: the image. 76% 77% o artifact: the image artifact. 78% 79*/ 80WandExport MagickBooleanType MagickDeleteImageArtifact(MagickWand *wand, 81 const char *artifact) 82{ 83 assert(wand != (MagickWand *) NULL); 84 assert(wand->signature == MagickWandSignature); 85 if (wand->debug != MagickFalse) 86 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 87 88 if (wand->images == (Image *) NULL) 89 { 90 (void) ThrowMagickException(wand->exception,GetMagickModule(),WandError, 91 "ContainsNoImages","`%s'",wand->name); 92 return(MagickFalse); 93 } 94 return(DeleteImageArtifact(wand->images,artifact)); 95} 96 97/* 98%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 99% % 100% % 101% % 102% 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 % 103% % 104% % 105% % 106%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 107% 108% MagickDeleteImageProperty() deletes a wand property. 109% 110% The format of the MagickDeleteImageProperty method is: 111% 112% MagickBooleanType MagickDeleteImageProperty(MagickWand *wand, 113% const char *property) 114% 115% A description of each parameter follows: 116% 117% o image: the image. 118% 119% o property: the image property. 120% 121*/ 122WandExport MagickBooleanType MagickDeleteImageProperty(MagickWand *wand, 123 const char *property) 124{ 125 assert(wand != (MagickWand *) NULL); 126 assert(wand->signature == MagickWandSignature); 127 if (wand->debug != MagickFalse) 128 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 129 130 if (wand->images == (Image *) NULL) 131 { 132 (void) ThrowMagickException(wand->exception,GetMagickModule(),WandError, 133 "ContainsNoImages","`%s'",wand->name); 134 return(MagickFalse); 135 } 136 return(DeleteImageProperty(wand->images,property)); 137} 138 139/* 140%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 141% % 142% % 143% % 144% M a g i c k D e l e t e O p t i o n % 145% % 146% % 147% % 148%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 149% 150% MagickDeleteOption() deletes a wand option. 151% 152% The format of the MagickDeleteOption method is: 153% 154% MagickBooleanType MagickDeleteOption(MagickWand *wand, 155% const char *option) 156% 157% A description of each parameter follows: 158% 159% o image: the image. 160% 161% o option: the image option. 162% 163*/ 164WandExport MagickBooleanType MagickDeleteOption(MagickWand *wand, 165 const char *option) 166{ 167 assert(wand != (MagickWand *) NULL); 168 assert(wand->signature == MagickWandSignature); 169 if (wand->debug != MagickFalse) 170 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 171 172 return(DeleteImageOption(wand->image_info,option)); 173} 174 175/* 176%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 177% % 178% % 179% % 180% M a g i c k G e t A n t i a l i a s % 181% % 182% % 183% % 184%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 185% 186% MagickGetAntialias() returns the antialias property associated with the 187% wand. 188% 189% The format of the MagickGetAntialias method is: 190% 191% MagickBooleanType MagickGetAntialias(const MagickWand *wand) 192% 193% A description of each parameter follows: 194% 195% o wand: the magick wand. 196% 197*/ 198WandExport MagickBooleanType MagickGetAntialias(const MagickWand *wand) 199{ 200 assert(wand != (const MagickWand *) NULL); 201 assert(wand->signature == MagickWandSignature); 202 if (wand->debug != MagickFalse) 203 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 204 205 return(wand->image_info->antialias); 206} 207 208/* 209%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 210% % 211% % 212% % 213% M a g i c k G e t B a c k g r o u n d C o l o r % 214% % 215% % 216% % 217%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 218% 219% MagickGetBackgroundColor() returns the wand background color. 220% 221% The format of the MagickGetBackgroundColor method is: 222% 223% PixelWand *MagickGetBackgroundColor(MagickWand *wand) 224% 225% A description of each parameter follows: 226% 227% o wand: the magick wand. 228% 229*/ 230WandExport PixelWand *MagickGetBackgroundColor(MagickWand *wand) 231{ 232 PixelWand 233 *background_color; 234 235 assert(wand != (MagickWand *) NULL); 236 assert(wand->signature == MagickWandSignature); 237 if (wand->debug != MagickFalse) 238 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 239 240 background_color=NewPixelWand(); 241 PixelSetPixelColor(background_color,&wand->image_info->background_color); 242 return(background_color); 243} 244 245/* 246%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 247% % 248% % 249% % 250% M a g i c k G e t C o l o r s p a c e % 251% % 252% % 253% % 254%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 255% 256% MagickGetColorspace() gets the wand colorspace type. 257% 258% The format of the MagickGetColorspace method is: 259% 260% ColorspaceType MagickGetColorspace(MagickWand *wand) 261% 262% A description of each parameter follows: 263% 264% o wand: the magick wand. 265% 266*/ 267WandExport ColorspaceType MagickGetColorspace(MagickWand *wand) 268{ 269 assert(wand != (MagickWand *) NULL); 270 assert(wand->signature == MagickWandSignature); 271 if (wand->debug != MagickFalse) 272 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 273 274 return(wand->image_info->colorspace); 275} 276 277/* 278%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 279% % 280% % 281% % 282% M a g i c k G e t C o m p r e s s i o n % 283% % 284% % 285% % 286%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 287% 288% MagickGetCompression() gets the wand compression type. 289% 290% The format of the MagickGetCompression method is: 291% 292% CompressionType MagickGetCompression(MagickWand *wand) 293% 294% A description of each parameter follows: 295% 296% o wand: the magick wand. 297% 298*/ 299WandExport CompressionType MagickGetCompression(MagickWand *wand) 300{ 301 assert(wand != (MagickWand *) NULL); 302 assert(wand->signature == MagickWandSignature); 303 if (wand->debug != MagickFalse) 304 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 305 306 return(wand->image_info->compression); 307} 308 309/* 310%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 311% % 312% % 313% % 314% 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 % 315% % 316% % 317% % 318%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 319% 320% MagickGetCompressionQuality() gets the wand compression quality. 321% 322% The format of the MagickGetCompressionQuality method is: 323% 324% size_t MagickGetCompressionQuality(MagickWand *wand) 325% 326% A description of each parameter follows: 327% 328% o wand: the magick wand. 329% 330*/ 331WandExport size_t MagickGetCompressionQuality(MagickWand *wand) 332{ 333 assert(wand != (MagickWand *) NULL); 334 assert(wand->signature == MagickWandSignature); 335 if (wand->debug != MagickFalse) 336 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 337 338 return(wand->image_info->quality); 339} 340 341/* 342%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 343% % 344% % 345% % 346% M a g i c k G e t C o p y r i g h t % 347% % 348% % 349% % 350%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 351% 352% MagickGetCopyright() returns the ImageMagick API copyright as a string 353% constant. 354% 355% The format of the MagickGetCopyright method is: 356% 357% const char *MagickGetCopyright(void) 358% 359*/ 360WandExport const char *MagickGetCopyright(void) 361{ 362 return(GetMagickCopyright()); 363} 364 365/* 366%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 367% % 368% % 369% % 370% M a g i c k G e t F i l e n a m e % 371% % 372% % 373% % 374%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 375% 376% MagickGetFilename() returns the filename associated with an image sequence. 377% 378% The format of the MagickGetFilename method is: 379% 380% const char *MagickGetFilename(const MagickWand *wand) 381% 382% A description of each parameter follows: 383% 384% o wand: the magick wand. 385% 386*/ 387WandExport char *MagickGetFilename(const MagickWand *wand) 388{ 389 assert(wand != (const MagickWand *) NULL); 390 assert(wand->signature == MagickWandSignature); 391 if (wand->debug != MagickFalse) 392 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 393 394 return(AcquireString(wand->image_info->filename)); 395} 396 397/* 398%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 399% % 400% % 401% % 402% M a g i c k G e t F o n t % 403% % 404% % 405% % 406%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 407% 408% MagickGetFont() returns the font associated with the MagickWand. 409% 410% The format of the MagickGetFont method is: 411% 412% char *MagickGetFont(MagickWand *wand) 413% 414% A description of each parameter follows: 415% 416% o wand: the magick wand. 417% 418*/ 419WandExport char *MagickGetFont(MagickWand *wand) 420{ 421 assert(wand != (MagickWand *) NULL); 422 assert(wand->signature == MagickWandSignature); 423 if (wand->debug != MagickFalse) 424 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 425 426 if (wand->image_info->font == (char *) NULL) 427 return((char *) NULL); 428 return(AcquireString(wand->image_info->font)); 429} 430 431/* 432%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 433% % 434% % 435% % 436% M a g i c k G e t F o r m a t % 437% % 438% % 439% % 440%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 441% 442% MagickGetFormat() returns the format of the magick wand. 443% 444% The format of the MagickGetFormat method is: 445% 446% const char MagickGetFormat(MagickWand *wand) 447% 448% A description of each parameter follows: 449% 450% o wand: the magick wand. 451% 452*/ 453WandExport char *MagickGetFormat(MagickWand *wand) 454{ 455 assert(wand != (MagickWand *) NULL); 456 assert(wand->signature == MagickWandSignature); 457 if (wand->debug != MagickFalse) 458 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 459 460 return(AcquireString(wand->image_info->magick)); 461} 462 463/* 464%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 465% % 466% % 467% % 468% M a g i c k G e t G r a v i t y % 469% % 470% % 471% % 472%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 473% 474% MagickGetGravity() gets the wand gravity. 475% 476% The format of the MagickGetGravity method is: 477% 478% GravityType MagickGetGravity(MagickWand *wand) 479% 480% A description of each parameter follows: 481% 482% o wand: the magick wand. 483% 484*/ 485WandExport GravityType MagickGetGravity(MagickWand *wand) 486{ 487 const char 488 *option; 489 490 GravityType 491 type; 492 493 assert(wand != (MagickWand *) NULL); 494 assert(wand->signature == MagickWandSignature); 495 if (wand->debug != MagickFalse) 496 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 497 498 option=GetImageOption(wand->image_info,"gravity"); 499 if (option == (const char *) NULL) 500 return(UndefinedGravity); 501 type=(GravityType) ParseCommandOption(MagickGravityOptions,MagickFalse,option); 502 return(type); 503} 504 505/* 506%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 507% % 508% % 509% % 510% M a g i c k G e t H o m e U R L % 511% % 512% % 513% % 514%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 515% 516% MagickGetHomeURL() returns the ImageMagick home URL. 517% 518% The format of the MagickGetHomeURL method is: 519% 520% char *MagickGetHomeURL(void) 521% 522*/ 523WandExport char *MagickGetHomeURL(void) 524{ 525 return(GetMagickHomeURL()); 526} 527 528/* 529%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 530% % 531% % 532% % 533% M a g i c k G e t I m a g e A r t i f a c t % 534% % 535% % 536% % 537%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 538% 539% MagickGetImageArtifact() returns a value associated with the specified 540% artifact. Use MagickRelinquishMemory() to free the value when you are 541% finished with it. 542% 543% The format of the MagickGetImageArtifact method is: 544% 545% char *MagickGetImageArtifact(MagickWand *wand,const char *artifact) 546% 547% A description of each parameter follows: 548% 549% o wand: the magick wand. 550% 551% o artifact: the artifact. 552% 553*/ 554WandExport char *MagickGetImageArtifact(MagickWand *wand,const char *artifact) 555{ 556 const char 557 *value; 558 559 assert(wand != (MagickWand *) NULL); 560 assert(wand->signature == MagickWandSignature); 561 if (wand->debug != MagickFalse) 562 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 563 564 if (wand->images == (Image *) NULL) 565 { 566 (void) ThrowMagickException(wand->exception,GetMagickModule(),WandError, 567 "ContainsNoImages","`%s'",wand->name); 568 return((char *) NULL); 569 } 570 value=GetImageArtifact(wand->images,artifact); 571 if (value == (const char *) NULL) 572 return((char *) NULL); 573 return(ConstantString(value)); 574} 575 576/* 577%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 578% % 579% % 580% % 581% M a g i c k G e t I m a g e P r o p e r t i e s % 582% % 583% % 584% % 585%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 586% 587% MagickGetImageArtifacts() returns all the artifact names that match the 588% specified pattern associated with a wand. Use MagickGetImageProperty() to 589% return the value of a particular artifact. Use MagickRelinquishMemory() to 590% free the value when you are finished with it. 591% 592% The format of the MagickGetImageArtifacts method is: 593% 594% char *MagickGetImageArtifacts(MagickWand *wand, 595% const char *pattern,size_t *number_artifacts) 596% 597% A description of each parameter follows: 598% 599% o wand: the magick wand. 600% 601% o pattern: Specifies a pointer to a text string containing a pattern. 602% 603% o number_artifacts: the number artifacts associated with this wand. 604% 605*/ 606WandExport char **MagickGetImageArtifacts(MagickWand *wand, 607 const char *pattern,size_t *number_artifacts) 608{ 609 char 610 **artifacts; 611 612 const char 613 *artifact; 614 615 register ssize_t 616 i; 617 618 size_t 619 length; 620 621 assert(wand != (MagickWand *) NULL); 622 assert(wand->signature == MagickWandSignature); 623 if (wand->debug != MagickFalse) 624 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 625 626 if (wand->images == (Image *) NULL) 627 { 628 (void) ThrowMagickException(wand->exception,GetMagickModule(),WandError, 629 "ContainsNoImages","`%s'",wand->name); 630 return((char **) NULL); 631 } 632 (void) GetImageProperty(wand->images,"exif:*",wand->exception); 633 length=1024; 634 artifacts=(char **) AcquireQuantumMemory(length,sizeof(*artifacts)); 635 if (artifacts == (char **) NULL) 636 return((char **) NULL); 637 ResetImagePropertyIterator(wand->images); 638 artifact=GetNextImageProperty(wand->images); 639 for (i=0; artifact != (const char *) NULL; ) 640 { 641 if ((*artifact != '[') && 642 (GlobExpression(artifact,pattern,MagickFalse) != MagickFalse)) 643 { 644 if ((i+1) >= (ssize_t) length) 645 { 646 length<<=1; 647 artifacts=(char **) ResizeQuantumMemory(artifacts,length, 648 sizeof(*artifacts)); 649 if (artifacts == (char **) NULL) 650 { 651 (void) ThrowMagickException(wand->exception,GetMagickModule(), 652 ResourceLimitError,"MemoryAllocationFailed","`%s'", 653 wand->name); 654 return((char **) NULL); 655 } 656 } 657 artifacts[i]=ConstantString(artifact); 658 i++; 659 } 660 artifact=GetNextImageProperty(wand->images); 661 } 662 artifacts[i]=(char *) NULL; 663 *number_artifacts=(size_t) i; 664 return(artifacts); 665} 666 667/* 668%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 669% % 670% % 671% % 672% M a g i c k G e t I m a g e P r o f i l e % 673% % 674% % 675% % 676%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 677% 678% MagickGetImageProfile() returns the named image profile. 679% 680% The format of the MagickGetImageProfile method is: 681% 682% unsigned char *MagickGetImageProfile(MagickWand *wand,const char *name, 683% size_t *length) 684% 685% A description of each parameter follows: 686% 687% o wand: the magick wand. 688% 689% o name: Name of profile to return: ICC, IPTC, or generic profile. 690% 691% o length: the length of the profile. 692% 693*/ 694WandExport unsigned char *MagickGetImageProfile(MagickWand *wand, 695 const char *name,size_t *length) 696{ 697 const StringInfo 698 *profile; 699 700 unsigned char 701 *datum; 702 703 assert(wand != (MagickWand *) NULL); 704 assert(wand->signature == MagickWandSignature); 705 if (wand->debug != MagickFalse) 706 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 707 708 if (wand->images == (Image *) NULL) 709 { 710 (void) ThrowMagickException(wand->exception,GetMagickModule(),WandError, 711 "ContainsNoImages","`%s'",wand->name); 712 return((unsigned char *) NULL); 713 } 714 *length=0; 715 if (wand->images->profiles == (SplayTreeInfo *) NULL) 716 return((unsigned char *) NULL); 717 profile=GetImageProfile(wand->images,name); 718 if (profile == (StringInfo *) NULL) 719 return((unsigned char *) NULL); 720 datum=(unsigned char *) AcquireQuantumMemory(GetStringInfoLength(profile), 721 sizeof(*datum)); 722 if (datum == (unsigned char *) NULL) 723 return((unsigned char *) NULL); 724 (void) CopyMagickMemory(datum,GetStringInfoDatum(profile), 725 GetStringInfoLength(profile)); 726 *length=(size_t) GetStringInfoLength(profile); 727 return(datum); 728} 729 730/* 731%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 732% % 733% % 734% % 735% M a g i c k G e t I m a g e P r o f i l e s % 736% % 737% % 738% % 739%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 740% 741% MagickGetImageProfiles() returns all the profile names that match the 742% specified pattern associated with a wand. Use MagickGetImageProfile() to 743% return the value of a particular property. Use MagickRelinquishMemory() to 744% free the value when you are finished with it. 745% 746% The format of the MagickGetImageProfiles method is: 747% 748% char *MagickGetImageProfiles(MagickWand *wand,const char *pattern, 749% size_t *number_profiles) 750% 751% A description of each parameter follows: 752% 753% o wand: the magick wand. 754% 755% o pattern: Specifies a pointer to a text string containing a pattern. 756% 757% o number_profiles: the number profiles associated with this wand. 758% 759*/ 760WandExport char **MagickGetImageProfiles(MagickWand *wand,const char *pattern, 761 size_t *number_profiles) 762{ 763 char 764 **profiles; 765 766 const char 767 *property; 768 769 register ssize_t 770 i; 771 772 size_t 773 length; 774 775 assert(wand != (MagickWand *) NULL); 776 assert(wand->signature == MagickWandSignature); 777 if (wand->debug != MagickFalse) 778 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 779 780 if (wand->images == (Image *) NULL) 781 { 782 (void) ThrowMagickException(wand->exception,GetMagickModule(),WandError, 783 "ContainsNoImages","`%s'",wand->name); 784 return((char **) NULL); 785 } 786 (void) GetImageProfile(wand->images,"exif:*"); 787 length=1024; 788 profiles=(char **) AcquireQuantumMemory(length,sizeof(*profiles)); 789 if (profiles == (char **) NULL) 790 return((char **) NULL); 791 ResetImageProfileIterator(wand->images); 792 property=GetNextImageProfile(wand->images); 793 for (i=0; property != (const char *) NULL; ) 794 { 795 if ((*property != '[') && 796 (GlobExpression(property,pattern,MagickFalse) != MagickFalse)) 797 { 798 if ((i+1) >= (ssize_t) length) 799 { 800 length<<=1; 801 profiles=(char **) ResizeQuantumMemory(profiles,length, 802 sizeof(*profiles)); 803 if (profiles == (char **) NULL) 804 { 805 (void) ThrowMagickException(wand->exception,GetMagickModule(), 806 ResourceLimitError,"MemoryAllocationFailed","`%s'", 807 wand->name); 808 return((char **) NULL); 809 } 810 } 811 profiles[i]=ConstantString(property); 812 i++; 813 } 814 property=GetNextImageProfile(wand->images); 815 } 816 profiles[i]=(char *) NULL; 817 *number_profiles=(size_t) i; 818 return(profiles); 819} 820 821/* 822%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 823% % 824% % 825% % 826% M a g i c k G e t I m a g e P r o p e r t y % 827% % 828% % 829% % 830%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 831% 832% MagickGetImageProperty() returns a value associated with the specified 833% property. Use MagickRelinquishMemory() to free the value when you are 834% finished with it. 835% 836% The format of the MagickGetImageProperty method is: 837% 838% char *MagickGetImageProperty(MagickWand *wand,const char *property) 839% 840% A description of each parameter follows: 841% 842% o wand: the magick wand. 843% 844% o property: the property. 845% 846*/ 847WandExport char *MagickGetImageProperty(MagickWand *wand,const char *property) 848{ 849 const char 850 *value; 851 852 assert(wand != (MagickWand *) NULL); 853 assert(wand->signature == MagickWandSignature); 854 if (wand->debug != MagickFalse) 855 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 856 857 if (wand->images == (Image *) NULL) 858 { 859 (void) ThrowMagickException(wand->exception,GetMagickModule(),WandError, 860 "ContainsNoImages","`%s'",wand->name); 861 return((char *) NULL); 862 } 863 value=GetImageProperty(wand->images,property,wand->exception); 864 if (value == (const char *) NULL) 865 return((char *) NULL); 866 return(ConstantString(value)); 867} 868 869/* 870%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 871% % 872% % 873% % 874% M a g i c k G e t I m a g e P r o p e r t i e s % 875% % 876% % 877% % 878%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 879% 880% MagickGetImageProperties() returns all the property names that match the 881% specified pattern associated with a wand. Use MagickGetImageProperty() to 882% return the value of a particular property. Use MagickRelinquishMemory() to 883% free the value when you are finished with it. 884% 885% The format of the MagickGetImageProperties method is: 886% 887% char *MagickGetImageProperties(MagickWand *wand, 888% const char *pattern,size_t *number_properties) 889% 890% A description of each parameter follows: 891% 892% o wand: the magick wand. 893% 894% o pattern: Specifies a pointer to a text string containing a pattern. 895% 896% o number_properties: the number properties associated with this wand. 897% 898*/ 899WandExport char **MagickGetImageProperties(MagickWand *wand, 900 const char *pattern,size_t *number_properties) 901{ 902 char 903 **properties; 904 905 const char 906 *property; 907 908 register ssize_t 909 i; 910 911 size_t 912 length; 913 914 assert(wand != (MagickWand *) NULL); 915 assert(wand->signature == MagickWandSignature); 916 if (wand->debug != MagickFalse) 917 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 918 919 if (wand->images == (Image *) NULL) 920 { 921 (void) ThrowMagickException(wand->exception,GetMagickModule(),WandError, 922 "ContainsNoImages","`%s'",wand->name); 923 return((char **) NULL); 924 } 925 (void) GetImageProperty(wand->images,"exif:*",wand->exception); 926 length=1024; 927 properties=(char **) AcquireQuantumMemory(length,sizeof(*properties)); 928 if (properties == (char **) NULL) 929 return((char **) NULL); 930 ResetImagePropertyIterator(wand->images); 931 property=GetNextImageProperty(wand->images); 932 for (i=0; property != (const char *) NULL; ) 933 { 934 if ((*property != '[') && 935 (GlobExpression(property,pattern,MagickFalse) != MagickFalse)) 936 { 937 if ((i+1) >= (ssize_t) length) 938 { 939 length<<=1; 940 properties=(char **) ResizeQuantumMemory(properties,length, 941 sizeof(*properties)); 942 if (properties == (char **) NULL) 943 { 944 (void) ThrowMagickException(wand->exception,GetMagickModule(), 945 ResourceLimitError,"MemoryAllocationFailed","`%s'", 946 wand->name); 947 return((char **) NULL); 948 } 949 } 950 properties[i]=ConstantString(property); 951 i++; 952 } 953 property=GetNextImageProperty(wand->images); 954 } 955 properties[i]=(char *) NULL; 956 *number_properties=(size_t) i; 957 return(properties); 958} 959 960/* 961%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 962% % 963% % 964% % 965% M a g i c k G e t I n t e r l a c e S c h e m e % 966% % 967% % 968% % 969%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 970% 971% MagickGetInterlaceScheme() gets the wand interlace scheme. 972% 973% The format of the MagickGetInterlaceScheme method is: 974% 975% InterlaceType MagickGetInterlaceScheme(MagickWand *wand) 976% 977% A description of each parameter follows: 978% 979% o wand: the magick wand. 980% 981*/ 982WandExport InterlaceType MagickGetInterlaceScheme(MagickWand *wand) 983{ 984 assert(wand != (MagickWand *) NULL); 985 assert(wand->signature == MagickWandSignature); 986 if (wand->debug != MagickFalse) 987 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 988 989 return(wand->image_info->interlace); 990} 991 992/* 993%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 994% % 995% % 996% % 997% 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 % 998% % 999% % 1000% % 1001%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1002% 1003% MagickGetInterpolateMethod() gets the wand compression. 1004% 1005% The format of the MagickGetInterpolateMethod method is: 1006% 1007% PixelInterpolateMethod MagickGetInterpolateMethod(MagickWand *wand) 1008% 1009% A description of each parameter follows: 1010% 1011% o wand: the magick wand. 1012% 1013*/ 1014WandExport PixelInterpolateMethod MagickGetInterpolateMethod(MagickWand *wand) 1015{ 1016 const char 1017 *option; 1018 1019 PixelInterpolateMethod 1020 method; 1021 1022 assert(wand != (MagickWand *) NULL); 1023 assert(wand->signature == MagickWandSignature); 1024 if (wand->debug != MagickFalse) 1025 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 1026 1027 option=GetImageOption(wand->image_info,"interpolate"); 1028 if (option == (const char *) NULL) 1029 return(UndefinedInterpolatePixel); 1030 method=(PixelInterpolateMethod) ParseCommandOption(MagickInterpolateOptions, 1031 MagickFalse,option); 1032 return(method); 1033} 1034 1035/* 1036%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1037% % 1038% % 1039% % 1040% M a g i c k G e t O p t i o n % 1041% % 1042% % 1043% % 1044%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1045% 1046% MagickGetOption() returns a value associated with a wand and the specified 1047% key. Use MagickRelinquishMemory() to free the value when you are finished 1048% with it. 1049% 1050% The format of the MagickGetOption method is: 1051% 1052% char *MagickGetOption(MagickWand *wand,const char *key) 1053% 1054% A description of each parameter follows: 1055% 1056% o wand: the magick wand. 1057% 1058% o key: the key. 1059% 1060*/ 1061WandExport char *MagickGetOption(MagickWand *wand,const char *key) 1062{ 1063 const char 1064 *option; 1065 1066 assert(wand != (MagickWand *) NULL); 1067 assert(wand->signature == MagickWandSignature); 1068 if (wand->debug != MagickFalse) 1069 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 1070 1071 option=GetImageOption(wand->image_info,key); 1072 return(ConstantString(option)); 1073} 1074 1075/* 1076%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1077% % 1078% % 1079% % 1080% M a g i c k G e t O p t i o n s % 1081% % 1082% % 1083% % 1084%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1085% 1086% MagickGetOptions() returns all the option names that match the specified 1087% pattern associated with a wand. Use MagickGetOption() to return the value 1088% of a particular option. Use MagickRelinquishMemory() to free the value 1089% when you are finished with it. 1090% 1091% The format of the MagickGetOptions method is: 1092% 1093% char *MagickGetOptions(MagickWand *wand,const char *pattern, 1094% size_t *number_options) 1095% 1096% A description of each parameter follows: 1097% 1098% o wand: the magick wand. 1099% 1100% o pattern: Specifies a pointer to a text string containing a pattern. 1101% 1102% o number_options: the number options associated with this wand. 1103% 1104*/ 1105WandExport char **MagickGetOptions(MagickWand *wand,const char *pattern, 1106 size_t *number_options) 1107{ 1108 char 1109 **options; 1110 1111 const char 1112 *option; 1113 1114 register ssize_t 1115 i; 1116 1117 size_t 1118 length; 1119 1120 assert(wand != (MagickWand *) NULL); 1121 assert(wand->signature == MagickWandSignature); 1122 if (wand->debug != MagickFalse) 1123 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 1124 1125 if (wand->images == (Image *) NULL) 1126 { 1127 (void) ThrowMagickException(wand->exception,GetMagickModule(),WandError, 1128 "ContainsNoImages","`%s'",wand->name); 1129 return((char **) NULL); 1130 } 1131 length=1024; 1132 options=(char **) AcquireQuantumMemory(length,sizeof(*options)); 1133 if (options == (char **) NULL) 1134 return((char **) NULL); 1135 ResetImageOptionIterator(wand->image_info); 1136 option=GetNextImageOption(wand->image_info); 1137 for (i=0; option != (const char *) NULL; ) 1138 { 1139 if ((*option != '[') && 1140 (GlobExpression(option,pattern,MagickFalse) != MagickFalse)) 1141 { 1142 if ((i+1) >= (ssize_t) length) 1143 { 1144 length<<=1; 1145 options=(char **) ResizeQuantumMemory(options,length, 1146 sizeof(*options)); 1147 if (options == (char **) NULL) 1148 { 1149 (void) ThrowMagickException(wand->exception,GetMagickModule(), 1150 ResourceLimitError,"MemoryAllocationFailed","`%s'", 1151 wand->name); 1152 return((char **) NULL); 1153 } 1154 } 1155 options[i]=ConstantString(option); 1156 i++; 1157 } 1158 option=GetNextImageOption(wand->image_info); 1159 } 1160 options[i]=(char *) NULL; 1161 *number_options=(size_t) i; 1162 return(options); 1163} 1164 1165/* 1166%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1167% % 1168% % 1169% % 1170% M a g i c k G e t O r i e n t a t i o n % 1171% % 1172% % 1173% % 1174%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1175% 1176% MagickGetOrientation() gets the wand orientation type. 1177% 1178% The format of the MagickGetOrientation method is: 1179% 1180% OrientationType MagickGetOrientation(MagickWand *wand) 1181% 1182% A description of each parameter follows: 1183% 1184% o wand: the magick wand. 1185% 1186*/ 1187WandExport OrientationType MagickGetOrientation(MagickWand *wand) 1188{ 1189 assert(wand != (MagickWand *) NULL); 1190 assert(wand->signature == MagickWandSignature); 1191 if (wand->debug != MagickFalse) 1192 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 1193 1194 return(wand->image_info->orientation); 1195} 1196 1197/* 1198%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1199% % 1200% % 1201% % 1202% M a g i c k G e t P a c k a g e N a m e % 1203% % 1204% % 1205% % 1206%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1207% 1208% MagickGetPackageName() returns the ImageMagick package name as a string 1209% constant. 1210% 1211% The format of the MagickGetPackageName method is: 1212% 1213% const char *MagickGetPackageName(void) 1214% 1215% 1216*/ 1217WandExport const char *MagickGetPackageName(void) 1218{ 1219 return(GetMagickPackageName()); 1220} 1221 1222/* 1223%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1224% % 1225% % 1226% % 1227% M a g i c k G e t P a g e % 1228% % 1229% % 1230% % 1231%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1232% 1233% MagickGetPage() returns the page geometry associated with the magick wand. 1234% 1235% The format of the MagickGetPage method is: 1236% 1237% MagickBooleanType MagickGetPage(const MagickWand *wand, 1238% size_t *width,size_t *height,ssize_t *x,ssize_t *y) 1239% 1240% A description of each parameter follows: 1241% 1242% o wand: the magick wand. 1243% 1244% o width: the page width. 1245% 1246% o height: page height. 1247% 1248% o x: the page x-offset. 1249% 1250% o y: the page y-offset. 1251% 1252*/ 1253WandExport MagickBooleanType MagickGetPage(const MagickWand *wand, 1254 size_t *width,size_t *height,ssize_t *x,ssize_t *y) 1255{ 1256 RectangleInfo 1257 geometry; 1258 1259 assert(wand != (const MagickWand *) NULL); 1260 assert(wand->signature == MagickWandSignature); 1261 if (wand->debug != MagickFalse) 1262 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 1263 1264 (void) ResetMagickMemory(&geometry,0,sizeof(geometry)); 1265 (void) ParseAbsoluteGeometry(wand->image_info->page,&geometry); 1266 *width=geometry.width; 1267 *height=geometry.height; 1268 *x=geometry.x; 1269 *y=geometry.y; 1270 return(MagickTrue); 1271} 1272 1273/* 1274%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1275% % 1276% % 1277% % 1278% M a g i c k G e t P o i n t s i z e % 1279% % 1280% % 1281% % 1282%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1283% 1284% MagickGetPointsize() returns the font pointsize associated with the 1285% MagickWand. 1286% 1287% The format of the MagickGetPointsize method is: 1288% 1289% double MagickGetPointsize(MagickWand *wand) 1290% 1291% A description of each parameter follows: 1292% 1293% o wand: the magick wand. 1294% 1295*/ 1296WandExport double MagickGetPointsize(MagickWand *wand) 1297{ 1298 assert(wand != (MagickWand *) NULL); 1299 assert(wand->signature == MagickWandSignature); 1300 if (wand->debug != MagickFalse) 1301 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 1302 1303 return(wand->image_info->pointsize); 1304} 1305 1306/* 1307%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1308% % 1309% % 1310% % 1311% M a g i c k G e t Q u a n t u m D e p t h % 1312% % 1313% % 1314% % 1315%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1316% 1317% MagickGetQuantumDepth() returns the ImageMagick quantum depth as a string 1318% constant. 1319% 1320% The format of the MagickGetQuantumDepth method is: 1321% 1322% const char *MagickGetQuantumDepth(size_t *depth) 1323% 1324% A description of each parameter follows: 1325% 1326% o depth: the quantum depth is returned as a number. 1327% 1328*/ 1329WandExport const char *MagickGetQuantumDepth(size_t *depth) 1330{ 1331 return(GetMagickQuantumDepth(depth)); 1332} 1333 1334/* 1335%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1336% % 1337% % 1338% % 1339% M a g i c k G e t Q u a n t u m R a n g e % 1340% % 1341% % 1342% % 1343%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1344% 1345% MagickGetQuantumRange() returns the ImageMagick quantum range as a string 1346% constant. 1347% 1348% The format of the MagickGetQuantumRange method is: 1349% 1350% const char *MagickGetQuantumRange(size_t *range) 1351% 1352% A description of each parameter follows: 1353% 1354% o range: the quantum range is returned as a number. 1355% 1356*/ 1357WandExport const char *MagickGetQuantumRange(size_t *range) 1358{ 1359 return(GetMagickQuantumRange(range)); 1360} 1361 1362/* 1363%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1364% % 1365% % 1366% % 1367% M a g i c k G e t R e l e a s e D a t e % 1368% % 1369% % 1370% % 1371%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1372% 1373% MagickGetReleaseDate() returns the ImageMagick release date as a string 1374% constant. 1375% 1376% The format of the MagickGetReleaseDate method is: 1377% 1378% const char *MagickGetReleaseDate(void) 1379% 1380*/ 1381WandExport const char *MagickGetReleaseDate(void) 1382{ 1383 return(GetMagickReleaseDate()); 1384} 1385 1386/* 1387%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1388% % 1389% % 1390% % 1391% M a g i c k G e t R e s o l u t i o n % 1392% % 1393% % 1394% % 1395%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1396% 1397% MagickGetResolution() gets the image X and Y resolution. 1398% 1399% The format of the MagickGetResolution method is: 1400% 1401% MagickBooleanType MagickGetResolution(const MagickWand *wand,double *x, 1402% double *y) 1403% 1404% A description of each parameter follows: 1405% 1406% o wand: the magick wand. 1407% 1408% o x: the x-resolution. 1409% 1410% o y: the y-resolution. 1411% 1412*/ 1413WandExport MagickBooleanType MagickGetResolution(const MagickWand *wand, 1414 double *x,double *y) 1415{ 1416 assert(wand != (MagickWand *) NULL); 1417 assert(wand->signature == MagickWandSignature); 1418 if (wand->debug != MagickFalse) 1419 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 1420 1421 *x=72.0; 1422 *y=72.0; 1423 if (wand->image_info->density != (char *) NULL) 1424 { 1425 GeometryInfo 1426 geometry_info; 1427 1428 MagickStatusType 1429 flags; 1430 1431 flags=ParseGeometry(wand->image_info->density,&geometry_info); 1432 *x=geometry_info.rho; 1433 *y=geometry_info.sigma; 1434 if ((flags & SigmaValue) == 0) 1435 *y=(*x); 1436 } 1437 return(MagickTrue); 1438} 1439 1440/* 1441%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1442% % 1443% % 1444% % 1445% M a g i c k G e t R e s o u r c e % 1446% % 1447% % 1448% % 1449%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1450% 1451% MagickGetResource() returns the specified resource in megabytes. 1452% 1453% The format of the MagickGetResource method is: 1454% 1455% MagickSizeType MagickGetResource(const ResourceType type) 1456% 1457% A description of each parameter follows: 1458% 1459% o wand: the magick wand. 1460% 1461*/ 1462WandExport MagickSizeType MagickGetResource(const ResourceType type) 1463{ 1464 return(GetMagickResource(type)); 1465} 1466 1467/* 1468%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1469% % 1470% % 1471% % 1472% M a g i c k G e t R e s o u r c e L i m i t % 1473% % 1474% % 1475% % 1476%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1477% 1478% MagickGetResourceLimit() returns the specified resource limit in megabytes. 1479% 1480% The format of the MagickGetResourceLimit method is: 1481% 1482% MagickSizeType MagickGetResourceLimit(const ResourceType type) 1483% 1484% A description of each parameter follows: 1485% 1486% o wand: the magick wand. 1487% 1488*/ 1489WandExport MagickSizeType MagickGetResourceLimit(const ResourceType type) 1490{ 1491 return(GetMagickResourceLimit(type)); 1492} 1493 1494/* 1495%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1496% % 1497% % 1498% % 1499% M a g i c k G e t S a m p l i n g F a c t o r s % 1500% % 1501% % 1502% % 1503%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1504% 1505% MagickGetSamplingFactors() gets the horizontal and vertical sampling factor. 1506% 1507% The format of the MagickGetSamplingFactors method is: 1508% 1509% double *MagickGetSamplingFactor(MagickWand *wand, 1510% size_t *number_factors) 1511% 1512% A description of each parameter follows: 1513% 1514% o wand: the magick wand. 1515% 1516% o number_factors: the number of factors in the returned array. 1517% 1518*/ 1519WandExport double *MagickGetSamplingFactors(MagickWand *wand, 1520 size_t *number_factors) 1521{ 1522 double 1523 *sampling_factors; 1524 1525 register const char 1526 *p; 1527 1528 register ssize_t 1529 i; 1530 1531 assert(wand != (MagickWand *) NULL); 1532 assert(wand->signature == MagickWandSignature); 1533 if (wand->debug != MagickFalse) 1534 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 1535 1536 *number_factors=0; 1537 sampling_factors=(double *) NULL; 1538 if (wand->image_info->sampling_factor == (char *) NULL) 1539 return(sampling_factors); 1540 i=0; 1541 for (p=wand->image_info->sampling_factor; p != (char *) NULL; p=strchr(p,',')) 1542 { 1543 while (((int) *p != 0) && ((isspace((int) ((unsigned char) *p)) != 0) || 1544 (*p == ','))) 1545 p++; 1546 i++; 1547 } 1548 sampling_factors=(double *) AcquireQuantumMemory((size_t) i+1, 1549 sizeof(*sampling_factors)); 1550 if (sampling_factors == (double *) NULL) 1551 ThrowWandFatalException(ResourceLimitFatalError,"MemoryAllocationFailed", 1552 wand->image_info->filename); 1553 i=0; 1554 for (p=wand->image_info->sampling_factor; p != (char *) NULL; p=strchr(p,',')) 1555 { 1556 while (((int) *p != 0) && ((isspace((int) ((unsigned char) *p)) != 0) || 1557 (*p == ','))) 1558 p++; 1559 sampling_factors[i]=StringToDouble(p,(char **) NULL); 1560 i++; 1561 } 1562 *number_factors=(size_t) i; 1563 return(sampling_factors); 1564} 1565 1566/* 1567%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1568% % 1569% % 1570% % 1571% M a g i c k G e t S i z e % 1572% % 1573% % 1574% % 1575%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1576% 1577% MagickGetSize() returns the size associated with the magick wand. 1578% 1579% The format of the MagickGetSize method is: 1580% 1581% MagickBooleanType MagickGetSize(const MagickWand *wand, 1582% size_t *columns,size_t *rows) 1583% 1584% A description of each parameter follows: 1585% 1586% o wand: the magick wand. 1587% 1588% o columns: the width in pixels. 1589% 1590% o height: the height in pixels. 1591% 1592*/ 1593WandExport MagickBooleanType MagickGetSize(const MagickWand *wand, 1594 size_t *columns,size_t *rows) 1595{ 1596 RectangleInfo 1597 geometry; 1598 1599 assert(wand != (const MagickWand *) NULL); 1600 assert(wand->signature == MagickWandSignature); 1601 if (wand->debug != MagickFalse) 1602 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 1603 1604 (void) ResetMagickMemory(&geometry,0,sizeof(geometry)); 1605 (void) ParseAbsoluteGeometry(wand->image_info->size,&geometry); 1606 *columns=geometry.width; 1607 *rows=geometry.height; 1608 return(MagickTrue); 1609} 1610 1611/* 1612%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1613% % 1614% % 1615% % 1616% M a g i c k G e t S i z e O f f s e t % 1617% % 1618% % 1619% % 1620%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1621% 1622% MagickGetSizeOffset() returns the size offset associated with the magick 1623% wand. 1624% 1625% The format of the MagickGetSizeOffset method is: 1626% 1627% MagickBooleanType MagickGetSizeOffset(const MagickWand *wand, 1628% ssize_t *offset) 1629% 1630% A description of each parameter follows: 1631% 1632% o wand: the magick wand. 1633% 1634% o offset: the image offset. 1635% 1636*/ 1637WandExport MagickBooleanType MagickGetSizeOffset(const MagickWand *wand, 1638 ssize_t *offset) 1639{ 1640 RectangleInfo 1641 geometry; 1642 1643 assert(wand != (const MagickWand *) NULL); 1644 assert(wand->signature == MagickWandSignature); 1645 if (wand->debug != MagickFalse) 1646 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 1647 1648 (void) ResetMagickMemory(&geometry,0,sizeof(geometry)); 1649 (void) ParseAbsoluteGeometry(wand->image_info->size,&geometry); 1650 *offset=geometry.x; 1651 return(MagickTrue); 1652} 1653 1654/* 1655%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1656% % 1657% % 1658% % 1659% M a g i c k G e t T y p e % 1660% % 1661% % 1662% % 1663%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1664% 1665% MagickGetType() returns the wand type. 1666% 1667% The format of the MagickGetType method is: 1668% 1669% ImageType MagickGetType(MagickWand *wand) 1670% 1671% A description of each parameter follows: 1672% 1673% o wand: the magick wand. 1674% 1675*/ 1676WandExport ImageType MagickGetType(MagickWand *wand) 1677{ 1678 assert(wand != (MagickWand *) NULL); 1679 assert(wand->signature == MagickWandSignature); 1680 if (wand->debug != MagickFalse) 1681 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 1682 1683 return(wand->image_info->type); 1684} 1685 1686/* 1687%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1688% % 1689% % 1690% % 1691% M a g i c k G e t V e r s i o n % 1692% % 1693% % 1694% % 1695%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1696% 1697% MagickGetVersion() returns the ImageMagick API version as a string constant 1698% and as a number. 1699% 1700% The format of the MagickGetVersion method is: 1701% 1702% const char *MagickGetVersion(size_t *version) 1703% 1704% A description of each parameter follows: 1705% 1706% o version: the ImageMagick version is returned as a number. 1707% 1708*/ 1709WandExport const char *MagickGetVersion(size_t *version) 1710{ 1711 return(GetMagickVersion(version)); 1712} 1713 1714/* 1715%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1716% % 1717% % 1718% % 1719% M a g i c k P r o f i l e I m a g e % 1720% % 1721% % 1722% % 1723%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1724% 1725% MagickProfileImage() adds or removes a ICC, IPTC, or generic profile 1726% from an image. If the profile is NULL, it is removed from the image 1727% otherwise added. Use a name of '*' and a profile of NULL to remove all 1728% profiles from the image. 1729% 1730% The format of the MagickProfileImage method is: 1731% 1732% MagickBooleanType MagickProfileImage(MagickWand *wand,const char *name, 1733% const void *profile,const size_t length) 1734% 1735% A description of each parameter follows: 1736% 1737% o wand: the magick wand. 1738% 1739% o name: Name of profile to add or remove: ICC, IPTC, or generic profile. 1740% 1741% o profile: the profile. 1742% 1743% o length: the length of the profile. 1744% 1745*/ 1746WandExport MagickBooleanType MagickProfileImage(MagickWand *wand, 1747 const char *name,const void *profile,const size_t length) 1748{ 1749 assert(wand != (MagickWand *) NULL); 1750 assert(wand->signature == MagickWandSignature); 1751 if (wand->debug != MagickFalse) 1752 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 1753 1754 if (wand->images == (Image *) NULL) 1755 ThrowWandException(WandError,"ContainsNoImages",wand->name); 1756 return(ProfileImage(wand->images,name,profile,length,wand->exception)); 1757} 1758 1759/* 1760%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1761% % 1762% % 1763% % 1764% M a g i c k R e m o v e I m a g e P r o f i l e % 1765% % 1766% % 1767% % 1768%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1769% 1770% MagickRemoveImageProfile() removes the named image profile and returns it. 1771% 1772% The format of the MagickRemoveImageProfile method is: 1773% 1774% unsigned char *MagickRemoveImageProfile(MagickWand *wand, 1775% const char *name,size_t *length) 1776% 1777% A description of each parameter follows: 1778% 1779% o wand: the magick wand. 1780% 1781% o name: Name of profile to return: ICC, IPTC, or generic profile. 1782% 1783% o length: the length of the profile. 1784% 1785*/ 1786WandExport unsigned char *MagickRemoveImageProfile(MagickWand *wand, 1787 const char *name,size_t *length) 1788{ 1789 StringInfo 1790 *profile; 1791 1792 unsigned char 1793 *datum; 1794 1795 assert(wand != (MagickWand *) NULL); 1796 assert(wand->signature == MagickWandSignature); 1797 if (wand->debug != MagickFalse) 1798 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 1799 1800 if (wand->images == (Image *) NULL) 1801 { 1802 (void) ThrowMagickException(wand->exception,GetMagickModule(),WandError, 1803 "ContainsNoImages","`%s'",wand->name); 1804 return((unsigned char *) NULL); 1805 } 1806 *length=0; 1807 profile=RemoveImageProfile(wand->images,name); 1808 if (profile == (StringInfo *) NULL) 1809 return((unsigned char *) NULL); 1810 datum=(unsigned char *) AcquireQuantumMemory(GetStringInfoLength(profile), 1811 sizeof(*datum)); 1812 if (datum == (unsigned char *) NULL) 1813 return((unsigned char *) NULL); 1814 (void) CopyMagickMemory(datum,GetStringInfoDatum(profile), 1815 GetStringInfoLength(profile)); 1816 *length=GetStringInfoLength(profile); 1817 profile=DestroyStringInfo(profile); 1818 return(datum); 1819} 1820 1821/* 1822%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1823% % 1824% % 1825% % 1826% M a g i c k S e t A n t i a l i a s % 1827% % 1828% % 1829% % 1830%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1831% 1832% MagickSetAntialias() sets the antialias propery of the wand. 1833% 1834% The format of the MagickSetAntialias method is: 1835% 1836% MagickBooleanType MagickSetAntialias(MagickWand *wand, 1837% const MagickBooleanType antialias) 1838% 1839% A description of each parameter follows: 1840% 1841% o wand: the magick wand. 1842% 1843% o antialias: the antialias property. 1844% 1845*/ 1846WandExport MagickBooleanType MagickSetAntialias(MagickWand *wand, 1847 const MagickBooleanType antialias) 1848{ 1849 assert(wand != (MagickWand *) NULL); 1850 assert(wand->signature == MagickWandSignature); 1851 if (wand->debug != MagickFalse) 1852 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 1853 1854 wand->image_info->antialias=antialias; 1855 return(MagickTrue); 1856} 1857 1858/* 1859%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1860% % 1861% % 1862% % 1863% M a g i c k S e t B a c k g r o u n d C o l o r % 1864% % 1865% % 1866% % 1867%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1868% 1869% MagickSetBackgroundColor() sets the wand background color. 1870% 1871% The format of the MagickSetBackgroundColor method is: 1872% 1873% MagickBooleanType MagickSetBackgroundColor(MagickWand *wand, 1874% const PixelWand *background) 1875% 1876% A description of each parameter follows: 1877% 1878% o wand: the magick wand. 1879% 1880% o background: the background pixel wand. 1881% 1882*/ 1883WandExport MagickBooleanType MagickSetBackgroundColor(MagickWand *wand, 1884 const PixelWand *background) 1885{ 1886 assert(wand != (MagickWand *) NULL); 1887 assert(wand->signature == MagickWandSignature); 1888 if (wand->debug != MagickFalse) 1889 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 1890 1891 PixelGetQuantumPacket(background,&wand->image_info->background_color); 1892 return(MagickTrue); 1893} 1894 1895/* 1896%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1897% % 1898% % 1899% % 1900% M a g i c k S e t C o l o r s p a c e % 1901% % 1902% % 1903% % 1904%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1905% 1906% MagickSetColorspace() sets the wand colorspace type. 1907% 1908% The format of the MagickSetColorspace method is: 1909% 1910% MagickBooleanType MagickSetColorspace(MagickWand *wand, 1911% const ColorspaceType colorspace) 1912% 1913% A description of each parameter follows: 1914% 1915% o wand: the magick wand. 1916% 1917% o colorspace: the wand colorspace. 1918% 1919*/ 1920WandExport MagickBooleanType MagickSetColorspace(MagickWand *wand, 1921 const ColorspaceType colorspace) 1922{ 1923 assert(wand != (MagickWand *) NULL); 1924 assert(wand->signature == MagickWandSignature); 1925 if (wand->debug != MagickFalse) 1926 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 1927 1928 wand->image_info->colorspace=colorspace; 1929 return(MagickTrue); 1930} 1931 1932/* 1933%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1934% % 1935% % 1936% % 1937% M a g i c k S e t C o m p r e s s i o n % 1938% % 1939% % 1940% % 1941%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1942% 1943% MagickSetCompression() sets the wand compression type. 1944% 1945% The format of the MagickSetCompression method is: 1946% 1947% MagickBooleanType MagickSetCompression(MagickWand *wand, 1948% const CompressionType compression) 1949% 1950% A description of each parameter follows: 1951% 1952% o wand: the magick wand. 1953% 1954% o compression: the wand compression. 1955% 1956*/ 1957WandExport MagickBooleanType MagickSetCompression(MagickWand *wand, 1958 const CompressionType compression) 1959{ 1960 assert(wand != (MagickWand *) NULL); 1961 assert(wand->signature == MagickWandSignature); 1962 if (wand->debug != MagickFalse) 1963 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 1964 1965 wand->image_info->compression=compression; 1966 return(MagickTrue); 1967} 1968 1969/* 1970%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1971% % 1972% % 1973% % 1974% 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 % 1975% % 1976% % 1977% % 1978%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1979% 1980% MagickSetCompressionQuality() sets the wand compression quality. 1981% 1982% The format of the MagickSetCompressionQuality method is: 1983% 1984% MagickBooleanType MagickSetCompressionQuality(MagickWand *wand, 1985% const size_t quality) 1986% 1987% A description of each parameter follows: 1988% 1989% o wand: the magick wand. 1990% 1991% o quality: the wand compression quality. 1992% 1993*/ 1994WandExport MagickBooleanType MagickSetCompressionQuality(MagickWand *wand, 1995 const size_t quality) 1996{ 1997 assert(wand != (MagickWand *) NULL); 1998 assert(wand->signature == MagickWandSignature); 1999 if (wand->debug != MagickFalse) 2000 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 2001 2002 wand->image_info->quality=quality; 2003 return(MagickTrue); 2004} 2005 2006/* 2007%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2008% % 2009% % 2010% % 2011% M a g i c k S e t D e p t h % 2012% % 2013% % 2014% % 2015%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2016% 2017% MagickSetDepth() sets the wand pixel depth. 2018% 2019% The format of the MagickSetDepth method is: 2020% 2021% MagickBooleanType MagickSetDepth(MagickWand *wand, 2022% const size_t depth) 2023% 2024% A description of each parameter follows: 2025% 2026% o wand: the magick wand. 2027% 2028% o depth: the wand pixel depth. 2029% 2030*/ 2031WandExport MagickBooleanType MagickSetDepth(MagickWand *wand, 2032 const size_t depth) 2033{ 2034 assert(wand != (MagickWand *) NULL); 2035 assert(wand->signature == MagickWandSignature); 2036 if (wand->debug != MagickFalse) 2037 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 2038 2039 wand->image_info->depth=depth; 2040 return(MagickTrue); 2041} 2042 2043/* 2044%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2045% % 2046% % 2047% % 2048% M a g i c k S e t E x t r a c t % 2049% % 2050% % 2051% % 2052%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2053% 2054% MagickSetExtract() sets the extract geometry before you read or write an 2055% image file. Use it for inline cropping (e.g. 200x200+0+0) or resizing 2056% (e.g.200x200). 2057% 2058% The format of the MagickSetExtract method is: 2059% 2060% MagickBooleanType MagickSetExtract(MagickWand *wand, 2061% const char *geometry) 2062% 2063% A description of each parameter follows: 2064% 2065% o wand: the magick wand. 2066% 2067% o geometry: the extract geometry. 2068% 2069*/ 2070WandExport MagickBooleanType MagickSetExtract(MagickWand *wand, 2071 const char *geometry) 2072{ 2073 assert(wand != (MagickWand *) NULL); 2074 assert(wand->signature == MagickWandSignature); 2075 if (wand->debug != MagickFalse) 2076 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 2077 if (wand->image_info->extract != (char *) NULL) 2078 wand->image_info->extract=DestroyString(wand->image_info->extract); 2079 if (geometry != (const char *) NULL) 2080 (void) CloneString(&wand->image_info->extract,geometry); 2081 return(MagickTrue); 2082} 2083 2084/* 2085%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2086% % 2087% % 2088% % 2089% M a g i c k S e t F i l e n a m e % 2090% % 2091% % 2092% % 2093%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2094% 2095% MagickSetFilename() sets the filename before you read or write an image file. 2096% 2097% The format of the MagickSetFilename method is: 2098% 2099% MagickBooleanType MagickSetFilename(MagickWand *wand, 2100% const char *filename) 2101% 2102% A description of each parameter follows: 2103% 2104% o wand: the magick wand. 2105% 2106% o filename: the image filename. 2107% 2108*/ 2109WandExport MagickBooleanType MagickSetFilename(MagickWand *wand, 2110 const char *filename) 2111{ 2112 assert(wand != (MagickWand *) NULL); 2113 assert(wand->signature == MagickWandSignature); 2114 if (wand->debug != MagickFalse) 2115 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 2116 2117 if (filename != (const char *) NULL) 2118 (void) CopyMagickString(wand->image_info->filename,filename,MagickPathExtent); 2119 return(MagickTrue); 2120} 2121 2122/* 2123%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2124% % 2125% % 2126% % 2127% M a g i c k S e t F o n t % 2128% % 2129% % 2130% % 2131%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2132% 2133% MagickSetFont() sets the font associated with the MagickWand. 2134% 2135% The format of the MagickSetFont method is: 2136% 2137% MagickBooleanType MagickSetFont(MagickWand *wand, const char *font) 2138% 2139% A description of each parameter follows: 2140% 2141% o wand: the magick wand. 2142% 2143% o font: the font 2144% 2145*/ 2146WandExport MagickBooleanType MagickSetFont(MagickWand *wand,const char *font) 2147{ 2148 if ((font == (const char *) NULL) || (*font == '\0')) 2149 return(MagickFalse); 2150 assert(wand != (MagickWand *) NULL); 2151 assert(wand->signature == MagickWandSignature); 2152 if (wand->debug != MagickFalse) 2153 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 2154 2155 (void) CloneString(&wand->image_info->font,font); 2156 return(MagickTrue); 2157} 2158 2159/* 2160%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2161% % 2162% % 2163% % 2164% M a g i c k S e t F o r m a t % 2165% % 2166% % 2167% % 2168%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2169% 2170% MagickSetFormat() sets the format of the magick wand. 2171% 2172% The format of the MagickSetFormat method is: 2173% 2174% MagickBooleanType MagickSetFormat(MagickWand *wand,const char *format) 2175% 2176% A description of each parameter follows: 2177% 2178% o wand: the magick wand. 2179% 2180% o format: the image format. 2181% 2182*/ 2183WandExport MagickBooleanType MagickSetFormat(MagickWand *wand, 2184 const char *format) 2185{ 2186 const MagickInfo 2187 *magick_info; 2188 2189 assert(wand != (MagickWand *) NULL); 2190 assert(wand->signature == MagickWandSignature); 2191 if (wand->debug != MagickFalse) 2192 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 2193 2194 if ((format == (char *) NULL) || (*format == '\0')) 2195 { 2196 *wand->image_info->magick='\0'; 2197 return(MagickTrue); 2198 } 2199 magick_info=GetMagickInfo(format,wand->exception); 2200 if (magick_info == (const MagickInfo *) NULL) 2201 return(MagickFalse); 2202 ClearMagickException(wand->exception); 2203 (void) CopyMagickString(wand->image_info->magick,format,MagickPathExtent); 2204 return(MagickTrue); 2205} 2206 2207/* 2208%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2209% % 2210% % 2211% % 2212% M a g i c k S e t G r a v i t y % 2213% % 2214% % 2215% % 2216%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2217% 2218% MagickSetGravity() sets the gravity type. 2219% 2220% The format of the MagickSetGravity type is: 2221% 2222% MagickBooleanType MagickSetGravity(MagickWand *wand, 2223% const GravityType type) 2224% 2225% A description of each parameter follows: 2226% 2227% o wand: the magick wand. 2228% 2229% o type: the gravity type. 2230% 2231*/ 2232WandExport MagickBooleanType MagickSetGravity(MagickWand *wand, 2233 const GravityType type) 2234{ 2235 MagickBooleanType 2236 status; 2237 2238 assert(wand != (MagickWand *) NULL); 2239 assert(wand->signature == MagickWandSignature); 2240 if (wand->debug != MagickFalse) 2241 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 2242 2243 status=SetImageOption(wand->image_info,"gravity",CommandOptionToMnemonic( 2244 MagickGravityOptions,(ssize_t) type)); 2245 return(status); 2246} 2247 2248/* 2249%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2250% % 2251% % 2252% % 2253% M a g i c k S e t I m a g e A r t i f r c t % 2254% % 2255% % 2256% % 2257%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2258% 2259% MagickSetImageArtifact() associates a artifact with an image. 2260% 2261% The format of the MagickSetImageArtifact method is: 2262% 2263% MagickBooleanType MagickSetImageArtifact(MagickWand *wand, 2264% const char *artifact,const char *value) 2265% 2266% A description of each parameter follows: 2267% 2268% o wand: the magick wand. 2269% 2270% o artifact: the artifact. 2271% 2272% o value: the value. 2273% 2274*/ 2275WandExport MagickBooleanType MagickSetImageArtifact(MagickWand *wand, 2276 const char *artifact,const char *value) 2277{ 2278 assert(wand != (MagickWand *) NULL); 2279 assert(wand->signature == MagickWandSignature); 2280 if (wand->debug != MagickFalse) 2281 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 2282 2283 if (wand->images == (Image *) NULL) 2284 ThrowWandException(WandError,"ContainsNoImages",wand->name); 2285 return(SetImageArtifact(wand->images,artifact,value)); 2286} 2287 2288/* 2289%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2290% % 2291% % 2292% % 2293% M a g i c k S e t P r o f i l e I m a g e % 2294% % 2295% % 2296% % 2297%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2298% 2299% MagickSetImageProfile() adds a named profile to the magick wand. If a 2300% profile with the same name already exists, it is replaced. This method 2301% differs from the MagickProfileImage() method in that it does not apply any 2302% CMS color profiles. 2303% 2304% The format of the MagickSetImageProfile method is: 2305% 2306% MagickBooleanType MagickSetImageProfile(MagickWand *wand, 2307% const char *name,const void *profile,const size_t length) 2308% 2309% A description of each parameter follows: 2310% 2311% o wand: the magick wand. 2312% 2313% o name: Name of profile to add or remove: ICC, IPTC, or generic profile. 2314% 2315% o profile: the profile. 2316% 2317% o length: the length of the profile. 2318% 2319*/ 2320WandExport MagickBooleanType MagickSetImageProfile(MagickWand *wand, 2321 const char *name,const void *profile,const size_t length) 2322{ 2323 MagickBooleanType 2324 status; 2325 2326 StringInfo 2327 *profile_info; 2328 2329 assert(wand != (MagickWand *) NULL); 2330 assert(wand->signature == MagickWandSignature); 2331 if (wand->debug != MagickFalse) 2332 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 2333 2334 if (wand->images == (Image *) NULL) 2335 ThrowWandException(WandError,"ContainsNoImages",wand->name); 2336 profile_info=AcquireStringInfo((size_t) length); 2337 SetStringInfoDatum(profile_info,(unsigned char *) profile); 2338 status=SetImageProfile(wand->images,name,profile_info,wand->exception); 2339 profile_info=DestroyStringInfo(profile_info); 2340 return(status); 2341} 2342 2343/* 2344%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2345% % 2346% % 2347% % 2348% M a g i c k S e t I m a g e P r o p e r t y % 2349% % 2350% % 2351% % 2352%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2353% 2354% MagickSetImageProperty() associates a property with an image. 2355% 2356% The format of the MagickSetImageProperty method is: 2357% 2358% MagickBooleanType MagickSetImageProperty(MagickWand *wand, 2359% const char *property,const char *value) 2360% 2361% A description of each parameter follows: 2362% 2363% o wand: the magick wand. 2364% 2365% o property: the property. 2366% 2367% o value: the value. 2368% 2369*/ 2370WandExport MagickBooleanType MagickSetImageProperty(MagickWand *wand, 2371 const char *property,const char *value) 2372{ 2373 MagickBooleanType 2374 status; 2375 2376 assert(wand != (MagickWand *) NULL); 2377 assert(wand->signature == MagickWandSignature); 2378 if (wand->debug != MagickFalse) 2379 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 2380 2381 if (wand->images == (Image *) NULL) 2382 ThrowWandException(WandError,"ContainsNoImages",wand->name); 2383 status=SetImageProperty(wand->images,property,value,wand->exception); 2384 return(status); 2385} 2386 2387/* 2388%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2389% % 2390% % 2391% % 2392% M a g i c k S e t I n t e r l a c e S c h e m e % 2393% % 2394% % 2395% % 2396%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2397% 2398% MagickSetInterlaceScheme() sets the image compression. 2399% 2400% The format of the MagickSetInterlaceScheme method is: 2401% 2402% MagickBooleanType MagickSetInterlaceScheme(MagickWand *wand, 2403% const InterlaceType interlace_scheme) 2404% 2405% A description of each parameter follows: 2406% 2407% o wand: the magick wand. 2408% 2409% o interlace_scheme: the image interlace scheme: NoInterlace, LineInterlace, 2410% PlaneInterlace, PartitionInterlace. 2411% 2412*/ 2413WandExport MagickBooleanType MagickSetInterlaceScheme(MagickWand *wand, 2414 const InterlaceType interlace_scheme) 2415{ 2416 assert(wand != (MagickWand *) NULL); 2417 assert(wand->signature == MagickWandSignature); 2418 if (wand->debug != MagickFalse) 2419 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 2420 2421 wand->image_info->interlace=interlace_scheme; 2422 return(MagickTrue); 2423} 2424 2425/* 2426%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2427% % 2428% % 2429% % 2430% 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 % 2431% % 2432% % 2433% % 2434%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2435% 2436% MagickSetInterpolateMethod() sets the interpolate pixel method. 2437% 2438% The format of the MagickSetInterpolateMethod method is: 2439% 2440% MagickBooleanType MagickSetInterpolateMethod(MagickWand *wand, 2441% const InterpolateMethodPixel method) 2442% 2443% A description of each parameter follows: 2444% 2445% o wand: the magick wand. 2446% 2447% o method: the interpolate pixel method. 2448% 2449*/ 2450WandExport MagickBooleanType MagickSetInterpolateMethod(MagickWand *wand, 2451 const PixelInterpolateMethod method) 2452{ 2453 MagickBooleanType 2454 status; 2455 2456 assert(wand != (MagickWand *) NULL); 2457 assert(wand->signature == MagickWandSignature); 2458 if (wand->debug != MagickFalse) 2459 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 2460 2461 status=SetImageOption(wand->image_info,"interpolate", 2462 CommandOptionToMnemonic(MagickInterpolateOptions,(ssize_t) method)); 2463 return(status); 2464} 2465 2466/* 2467%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2468% % 2469% % 2470% % 2471% M a g i c k S e t O p t i o n % 2472% % 2473% % 2474% % 2475%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2476% 2477% MagickSetOption() associates one or options with the wand (.e.g 2478% MagickSetOption(wand,"jpeg:perserve","yes")). 2479% 2480% The format of the MagickSetOption method is: 2481% 2482% MagickBooleanType MagickSetOption(MagickWand *wand,const char *key, 2483% const char *value) 2484% 2485% A description of each parameter follows: 2486% 2487% o wand: the magick wand. 2488% 2489% o key: The key. 2490% 2491% o value: The value. 2492% 2493*/ 2494WandExport MagickBooleanType MagickSetOption(MagickWand *wand,const char *key, 2495 const char *value) 2496{ 2497 assert(wand != (MagickWand *) NULL); 2498 assert(wand->signature == MagickWandSignature); 2499 if (wand->debug != MagickFalse) 2500 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 2501 2502 return(SetImageOption(wand->image_info,key,value)); 2503} 2504 2505/* 2506%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2507% % 2508% % 2509% % 2510% M a g i c k S e t O r i e n t a t i o n % 2511% % 2512% % 2513% % 2514%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2515% 2516% MagickSetOrientation() sets the wand orientation type. 2517% 2518% The format of the MagickSetOrientation method is: 2519% 2520% MagickBooleanType MagickSetOrientation(MagickWand *wand, 2521% const OrientationType orientation) 2522% 2523% A description of each parameter follows: 2524% 2525% o wand: the magick wand. 2526% 2527% o orientation: the wand orientation. 2528% 2529*/ 2530WandExport MagickBooleanType MagickSetOrientation(MagickWand *wand, 2531 const OrientationType orientation) 2532{ 2533 assert(wand != (MagickWand *) NULL); 2534 assert(wand->signature == MagickWandSignature); 2535 if (wand->debug != MagickFalse) 2536 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 2537 2538 wand->image_info->orientation=orientation; 2539 return(MagickTrue); 2540} 2541 2542/* 2543%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2544% % 2545% % 2546% % 2547% M a g i c k S e t P a g e % 2548% % 2549% % 2550% % 2551%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2552% 2553% MagickSetPage() sets the page geometry of the magick wand. 2554% 2555% The format of the MagickSetPage method is: 2556% 2557% MagickBooleanType MagickSetPage(MagickWand *wand, 2558% const size_t width,const size_t height,const ssize_t x, 2559% const ssize_t y) 2560% 2561% A description of each parameter follows: 2562% 2563% o wand: the magick wand. 2564% 2565% o width: the page width. 2566% 2567% o height: the page height. 2568% 2569% o x: the page x-offset. 2570% 2571% o y: the page y-offset. 2572% 2573*/ 2574WandExport MagickBooleanType MagickSetPage(MagickWand *wand, 2575 const size_t width,const size_t height,const ssize_t x, 2576 const ssize_t y) 2577{ 2578 char 2579 geometry[MagickPathExtent]; 2580 2581 assert(wand != (MagickWand *) NULL); 2582 assert(wand->signature == MagickWandSignature); 2583 if (wand->debug != MagickFalse) 2584 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 2585 2586 (void) FormatLocaleString(geometry,MagickPathExtent,"%.20gx%.20g%+.20g%+.20g", 2587 (double) width,(double) height,(double) x,(double) y); 2588 (void) CloneString(&wand->image_info->page,geometry); 2589 return(MagickTrue); 2590} 2591 2592/* 2593%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2594% % 2595% % 2596% % 2597% M a g i c k S e t P a s s p h r a s e % 2598% % 2599% % 2600% % 2601%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2602% 2603% MagickSetPassphrase() sets the passphrase. 2604% 2605% The format of the MagickSetPassphrase method is: 2606% 2607% MagickBooleanType MagickSetPassphrase(MagickWand *wand, 2608% const char *passphrase) 2609% 2610% A description of each parameter follows: 2611% 2612% o wand: the magick wand. 2613% 2614% o passphrase: the passphrase. 2615% 2616*/ 2617WandExport MagickBooleanType MagickSetPassphrase(MagickWand *wand, 2618 const char *passphrase) 2619{ 2620 assert(wand != (MagickWand *) NULL); 2621 assert(wand->signature == MagickWandSignature); 2622 if (wand->debug != MagickFalse) 2623 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 2624 2625 (void) SetImageOption(wand->image_info,"authenticate",passphrase); 2626 return(MagickTrue); 2627} 2628 2629/* 2630%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2631% % 2632% % 2633% % 2634% M a g i c k S e t P o i n t s i z e % 2635% % 2636% % 2637% % 2638%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2639% 2640% MagickSetPointsize() sets the font pointsize associated with the MagickWand. 2641% 2642% The format of the MagickSetPointsize method is: 2643% 2644% MagickBooleanType MagickSetPointsize(MagickWand *wand, 2645% const double pointsize) 2646% 2647% A description of each parameter follows: 2648% 2649% o wand: the magick wand. 2650% 2651% o pointsize: the size of the font 2652% 2653*/ 2654WandExport MagickBooleanType MagickSetPointsize(MagickWand *wand, 2655 const double pointsize) 2656{ 2657 assert(wand != (MagickWand *) NULL); 2658 assert(wand->signature == MagickWandSignature); 2659 if (wand->debug != MagickFalse) 2660 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 2661 2662 wand->image_info->pointsize=pointsize; 2663 return(MagickTrue); 2664} 2665 2666/* 2667%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2668% % 2669% % 2670% % 2671% M a g i c k S e t P r o g r e s s M o n i t o r % 2672% % 2673% % 2674% % 2675%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2676% 2677% MagickSetProgressMonitor() sets the wand progress monitor to the specified 2678% method and returns the previous progress monitor if any. The progress 2679% monitor method looks like this: 2680% 2681% MagickBooleanType MagickProgressMonitor(const char *text, 2682% const MagickOffsetType offset,const MagickSizeType span, 2683% void *client_data) 2684% 2685% If the progress monitor returns MagickFalse, the current operation is 2686% interrupted. 2687% 2688% The format of the MagickSetProgressMonitor method is: 2689% 2690% MagickProgressMonitor MagickSetProgressMonitor(MagickWand *wand 2691% const MagickProgressMonitor progress_monitor,void *client_data) 2692% 2693% A description of each parameter follows: 2694% 2695% o wand: the magick wand. 2696% 2697% o progress_monitor: Specifies a pointer to a method to monitor progress 2698% of an image operation. 2699% 2700% o client_data: Specifies a pointer to any client data. 2701% 2702*/ 2703WandExport MagickProgressMonitor MagickSetProgressMonitor(MagickWand *wand, 2704 const MagickProgressMonitor progress_monitor,void *client_data) 2705{ 2706 MagickProgressMonitor 2707 previous_monitor; 2708 2709 assert(wand != (MagickWand *) NULL); 2710 assert(wand->signature == MagickWandSignature); 2711 if (wand->debug != MagickFalse) 2712 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 2713 2714 previous_monitor=SetImageInfoProgressMonitor(wand->image_info, 2715 progress_monitor,client_data); 2716 return(previous_monitor); 2717} 2718 2719/* 2720%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2721% % 2722% % 2723% % 2724% M a g i c k S e t R e s o u r c e L i m i t % 2725% % 2726% % 2727% % 2728%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2729% 2730% MagickSetResourceLimit() sets the limit for a particular resource in 2731% megabytes. 2732% 2733% The format of the MagickSetResourceLimit method is: 2734% 2735% MagickBooleanType MagickSetResourceLimit(const ResourceType type, 2736% const MagickSizeType limit) 2737% 2738% A description of each parameter follows: 2739% 2740% o type: the type of resource: AreaResource, MemoryResource, MapResource, 2741% DiskResource, FileResource. 2742% 2743% o The maximum limit for the resource. 2744% 2745*/ 2746WandExport MagickBooleanType MagickSetResourceLimit(const ResourceType type, 2747 const MagickSizeType limit) 2748{ 2749 return(SetMagickResourceLimit(type,limit)); 2750} 2751 2752/* 2753%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2754% % 2755% % 2756% % 2757% M a g i c k S e t R e s o l u t i o n % 2758% % 2759% % 2760% % 2761%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2762% 2763% MagickSetResolution() sets the image resolution. 2764% 2765% The format of the MagickSetResolution method is: 2766% 2767% MagickBooleanType MagickSetResolution(MagickWand *wand, 2768% const double x_resolution,const double y_resolution) 2769% 2770% A description of each parameter follows: 2771% 2772% o wand: the magick wand. 2773% 2774% o x_resolution: the image x resolution. 2775% 2776% o y_resolution: the image y resolution. 2777% 2778*/ 2779WandExport MagickBooleanType MagickSetResolution(MagickWand *wand, 2780 const double x_resolution,const double y_resolution) 2781{ 2782 char 2783 density[MagickPathExtent]; 2784 2785 assert(wand != (MagickWand *) NULL); 2786 assert(wand->signature == MagickWandSignature); 2787 if (wand->debug != MagickFalse) 2788 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 2789 2790 (void) FormatLocaleString(density,MagickPathExtent,"%gx%g",x_resolution, 2791 y_resolution); 2792 (void) CloneString(&wand->image_info->density,density); 2793 return(MagickTrue); 2794} 2795 2796/* 2797%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2798% % 2799% % 2800% % 2801% M a g i c k S e t S a m p l i n g F a c t o r s % 2802% % 2803% % 2804% % 2805%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2806% 2807% MagickSetSamplingFactors() sets the image sampling factors. 2808% 2809% The format of the MagickSetSamplingFactors method is: 2810% 2811% MagickBooleanType MagickSetSamplingFactors(MagickWand *wand, 2812% const size_t number_factors,const double *sampling_factors) 2813% 2814% A description of each parameter follows: 2815% 2816% o wand: the magick wand. 2817% 2818% o number_factoes: the number of factors. 2819% 2820% o sampling_factors: An array of doubles representing the sampling factor 2821% for each color component (in RGB order). 2822% 2823*/ 2824WandExport MagickBooleanType MagickSetSamplingFactors(MagickWand *wand, 2825 const size_t number_factors,const double *sampling_factors) 2826{ 2827 char 2828 sampling_factor[MagickPathExtent]; 2829 2830 register ssize_t 2831 i; 2832 2833 assert(wand != (MagickWand *) NULL); 2834 assert(wand->signature == MagickWandSignature); 2835 if (wand->debug != MagickFalse) 2836 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 2837 2838 if (wand->image_info->sampling_factor != (char *) NULL) 2839 wand->image_info->sampling_factor=(char *) 2840 RelinquishMagickMemory(wand->image_info->sampling_factor); 2841 if (number_factors == 0) 2842 return(MagickTrue); 2843 for (i=0; i < (ssize_t) (number_factors-1); i++) 2844 { 2845 (void) FormatLocaleString(sampling_factor,MagickPathExtent,"%g,", 2846 sampling_factors[i]); 2847 (void) ConcatenateString(&wand->image_info->sampling_factor, 2848 sampling_factor); 2849 } 2850 (void) FormatLocaleString(sampling_factor,MagickPathExtent,"%g", 2851 sampling_factors[i]); 2852 (void) ConcatenateString(&wand->image_info->sampling_factor,sampling_factor); 2853 return(MagickTrue); 2854} 2855 2856/* 2857%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2858% % 2859% % 2860% % 2861% M a g i c k S e t S i z e % 2862% % 2863% % 2864% % 2865%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2866% 2867% MagickSetSize() sets the size of the magick wand. Set it before you 2868% read a raw image format such as RGB, GRAY, or CMYK. 2869% 2870% The format of the MagickSetSize method is: 2871% 2872% MagickBooleanType MagickSetSize(MagickWand *wand, 2873% const size_t columns,const size_t rows) 2874% 2875% A description of each parameter follows: 2876% 2877% o wand: the magick wand. 2878% 2879% o columns: the width in pixels. 2880% 2881% o rows: the rows in pixels. 2882% 2883*/ 2884WandExport MagickBooleanType MagickSetSize(MagickWand *wand, 2885 const size_t columns,const size_t rows) 2886{ 2887 char 2888 geometry[MagickPathExtent]; 2889 2890 assert(wand != (MagickWand *) NULL); 2891 assert(wand->signature == MagickWandSignature); 2892 if (wand->debug != MagickFalse) 2893 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 2894 2895 (void) FormatLocaleString(geometry,MagickPathExtent,"%.20gx%.20g",(double) 2896 columns,(double) rows); 2897 (void) CloneString(&wand->image_info->size,geometry); 2898 return(MagickTrue); 2899} 2900 2901/* 2902%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2903% % 2904% % 2905% % 2906% M a g i c k S e t S i z e O f f s e t % 2907% % 2908% % 2909% % 2910%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2911% 2912% MagickSetSizeOffset() sets the size and offset of the magick wand. Set it 2913% before you read a raw image format such as RGB, GRAY, or CMYK. 2914% 2915% The format of the MagickSetSizeOffset method is: 2916% 2917% MagickBooleanType MagickSetSizeOffset(MagickWand *wand, 2918% const size_t columns,const size_t rows, 2919% const ssize_t offset) 2920% 2921% A description of each parameter follows: 2922% 2923% o wand: the magick wand. 2924% 2925% o columns: the image width in pixels. 2926% 2927% o rows: the image rows in pixels. 2928% 2929% o offset: the image offset. 2930% 2931*/ 2932WandExport MagickBooleanType MagickSetSizeOffset(MagickWand *wand, 2933 const size_t columns,const size_t rows,const ssize_t offset) 2934{ 2935 char 2936 geometry[MagickPathExtent]; 2937 2938 assert(wand != (MagickWand *) NULL); 2939 assert(wand->signature == MagickWandSignature); 2940 if (wand->debug != MagickFalse) 2941 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 2942 2943 (void) FormatLocaleString(geometry,MagickPathExtent,"%.20gx%.20g%+.20g", 2944 (double) columns,(double) rows,(double) offset); 2945 (void) CloneString(&wand->image_info->size,geometry); 2946 return(MagickTrue); 2947} 2948 2949/* 2950%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2951% % 2952% % 2953% % 2954% M a g i c k S e t T y p e % 2955% % 2956% % 2957% % 2958%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2959% 2960% MagickSetType() sets the image type attribute. 2961% 2962% The format of the MagickSetType method is: 2963% 2964% MagickBooleanType MagickSetType(MagickWand *wand, 2965% const ImageType image_type) 2966% 2967% A description of each parameter follows: 2968% 2969% o wand: the magick wand. 2970% 2971% o image_type: the image type: UndefinedType, BilevelType, GrayscaleType, 2972% GrayscaleAlphaType, PaletteType, PaletteAlphaType, TrueColorType, 2973% TrueColorAlphaType, ColorSeparationType, ColorSeparationAlphaType, 2974% or OptimizeType. 2975% 2976*/ 2977WandExport MagickBooleanType MagickSetType(MagickWand *wand, 2978 const ImageType image_type) 2979{ 2980 assert(wand != (MagickWand *) NULL); 2981 assert(wand->signature == MagickWandSignature); 2982 if (wand->debug != MagickFalse) 2983 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 2984 2985 wand->image_info->type=image_type; 2986 return(MagickTrue); 2987} 2988