From: dirk Date: Sat, 1 Aug 2015 08:06:56 +0000 (+0000) Subject: Added fontFamily to the Image class of Magick++. X-Git-Tag: 7.0.1-0~726 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=6409f34d637a34a1c643632aa849371ec8b3b5a8;p=imagemagick Added fontFamily to the Image class of Magick++. --- diff --git a/Magick++/lib/Image.cpp b/Magick++/lib/Image.cpp index 37fd5487d..60098bdb4 100644 --- a/Magick++/lib/Image.cpp +++ b/Magick++/lib/Image.cpp @@ -849,6 +849,17 @@ std::string Magick::Image::font(void) const return(constOptions()->font()); } +void Magick::Image::fontFamily(const std::string &family_) +{ + modifyImage(); + options()->fontFamily(family_); +} + +std::string Magick::Image::fontFamily(void) const +{ + return(constOptions()->fontFamily()); +} + void Magick::Image::fontPointsize(const double pointSize_) { modifyImage(); diff --git a/Magick++/lib/Magick++/Image.h b/Magick++/lib/Magick++/Image.h index 3c95ecd63..c9f895a3b 100644 --- a/Magick++/lib/Magick++/Image.h +++ b/Magick++/lib/Magick++/Image.h @@ -255,6 +255,10 @@ namespace Magick void font(const std::string &font_); std::string font(void) const; + // Font family + void fontFamily(const std::string &family_); + std::string fontFamily(void) const; + // Font point size void fontPointsize(const double pointSize_); double fontPointsize(void) const; diff --git a/Magick++/lib/Magick++/Options.h b/Magick++/lib/Magick++/Options.h index cc784b5ef..eb3248706 100644 --- a/Magick++/lib/Magick++/Options.h +++ b/Magick++/lib/Magick++/Options.h @@ -117,6 +117,10 @@ namespace Magick void font(const std::string &font_); std::string font(void) const; + // Font name + void fontFamily(const std::string &family_); + std::string fontFamily(void) const; + // Font point size void fontPointsize(double pointSize_); double fontPointsize(void) const; diff --git a/Magick++/lib/Options.cpp b/Magick++/lib/Options.cpp index da0ea2921..29ee766bf 100644 --- a/Magick++/lib/Options.cpp +++ b/Magick++/lib/Options.cpp @@ -301,6 +301,28 @@ std::string Magick::Options::font(void) const return(std::string()); } +void Magick::Options::fontFamily(const std::string &family_) +{ + if (family_.length() == 0) + { + _drawInfo->family=(char *) RelinquishMagickMemory(_drawInfo->font); + (void) RemoveImageOption(imageInfo(),"family"); + } + else + { + Magick::CloneString(&_drawInfo->family,family_); + (void) SetImageOption(imageInfo(),"family",family_.c_str()); + } +} + +std::string Magick::Options::fontFamily(void) const +{ + if (_drawInfo->family) + return(std::string(_drawInfo->family)); + + return(std::string()); +} + void Magick::Options::fontPointsize(double pointSize_) { _imageInfo->pointsize=pointSize_; diff --git a/MagickCore/draw.c b/MagickCore/draw.c index a3d5db71f..5cb4d4da5 100644 --- a/MagickCore/draw.c +++ b/MagickCore/draw.c @@ -4885,6 +4885,9 @@ MagickExport void GetDrawInfo(const ImageInfo *image_info,DrawInfo *draw_info) option=GetImageOption(clone_info,"encoding"); if (option != (const char *) NULL) (void) CloneString(&draw_info->encoding,option); + option=GetImageOption(clone_info,"family"); + if (option != (const char *) NULL) + (void) CloneString(&draw_info->family,option); option=GetImageOption(clone_info,"fill"); if (option != (const char *) NULL) (void) QueryColorCompliance(option,AllCompliance,&draw_info->fill, diff --git a/MagickWand/mogrify.c b/MagickWand/mogrify.c index 42f0b8af5..10f20135d 100644 --- a/MagickWand/mogrify.c +++ b/MagickWand/mogrify.c @@ -6835,6 +6835,12 @@ WandExport MagickBooleanType MogrifyImageInfo(ImageInfo *image_info, } case 'f': { + if (LocaleCompare("family",option+1) == 0) + { + if (*option != '+') + (void) SetImageOption(image_info,option+1,argv[i+1]); + break; + } if (LocaleCompare("fill",option+1) == 0) { if (*option == '+')