11#define MAGICKCORE_IMPLEMENTATION 1
12#define MAGICK_PLUSPLUS_IMPLEMENTATION 1
14#include "Magick++/Include.h"
20#include "Magick++/Options.h"
21#include "Magick++/Functions.h"
22#include "Magick++/Exception.h"
24#define MagickPI 3.14159265358979323846264338327950288419716939937510
25#define DegreesToRadians(x) (MagickPI*(x)/180.0)
27Magick::Options::Options(
void)
28 : _imageInfo(static_cast<ImageInfo*>(AcquireMagickMemory(
30 _quantizeInfo(static_cast<QuantizeInfo*>(AcquireMagickMemory(
31 sizeof(QuantizeInfo)))),
32 _drawInfo(static_cast<DrawInfo*>(AcquireMagickMemory(sizeof(DrawInfo)))),
36 GetImageInfo(_imageInfo);
39 GetQuantizeInfo(_quantizeInfo);
42 GetDrawInfo(_imageInfo,_drawInfo);
46 : _imageInfo(CloneImageInfo(options_._imageInfo)),
47 _quantizeInfo(CloneQuantizeInfo(options_._quantizeInfo)),
48 _drawInfo(CloneDrawInfo(_imageInfo,options_._drawInfo)),
53Magick::Options::~Options()
56 _imageInfo=DestroyImageInfo(_imageInfo);
59 _quantizeInfo=DestroyQuantizeInfo(_quantizeInfo);
62 _drawInfo=DestroyDrawInfo(_drawInfo);
65void Magick::Options::antiAlias(
bool flag_)
67 _drawInfo->text_antialias=
static_cast<MagickBooleanType
>(
68 flag_ ? MagickTrue : MagickFalse);
71bool Magick::Options::antiAlias(
void)
const
73 return(
static_cast<bool>(_drawInfo->text_antialias));
76void Magick::Options::adjoin(
bool flag_)
78 _imageInfo->adjoin=
static_cast<MagickBooleanType
>(
79 flag_ ? MagickTrue : MagickFalse);
82bool Magick::Options::adjoin(
void)
const
84 return(
static_cast<bool>(_imageInfo->adjoin));
87void Magick::Options::backgroundColor(
const Magick::Color &color_)
89 _imageInfo->background_color=color_;
92Magick::Color Magick::Options::backgroundColor(
void)
const
94 return(Magick::Color(_imageInfo->background_color));
97void Magick::Options::backgroundTexture(
const std::string &backgroundTexture_)
99 if (backgroundTexture_.length() == 0)
100 _imageInfo->texture=(
char *) RelinquishMagickMemory(_imageInfo->texture);
102 Magick::CloneString(&_imageInfo->texture,backgroundTexture_);
105std::string Magick::Options::backgroundTexture(
void)
const
107 if (_imageInfo->texture)
108 return(std::string(_imageInfo->texture));
110 return(std::string());
113void Magick::Options::borderColor(
const Color &color_)
115 _imageInfo->border_color=color_;
116 _drawInfo->border_color=color_;
119Magick::Color Magick::Options::borderColor(
void)
const
121 return(Magick::Color(_imageInfo->border_color));
124void Magick::Options::boxColor(
const Magick::Color &boxColor_)
126 _drawInfo->undercolor=boxColor_;
129Magick::Color Magick::Options::boxColor(
void)
const
131 return(Magick::Color(_drawInfo->undercolor));
134void Magick::Options::colorspaceType(Magick::ColorspaceType colorspace_)
136 _imageInfo->colorspace=colorspace_;
139Magick::ColorspaceType Magick::Options::colorspaceType(
void)
const
141 return(
static_cast<Magick::ColorspaceType
>(_imageInfo->colorspace));
144void Magick::Options::compressType(CompressionType compressType_)
146 _imageInfo->compression=compressType_;
149Magick::CompressionType Magick::Options::compressType(
void)
const
151 return(
static_cast<Magick::CompressionType
>(_imageInfo->compression));
154void Magick::Options::colorFuzz(
double fuzz_)
156 _imageInfo->fuzz=fuzz_;
159double Magick::Options::colorFuzz(
void)
const
161 return(_imageInfo->fuzz);
164void Magick::Options::debug(
bool flag_)
167 SetLogEventMask(
"All");
169 SetLogEventMask(
"None");
172bool Magick::Options::debug(
void)
const
174 if (IsEventLogging())
180void Magick::Options::density(
const Magick::Geometry &density_)
182 if (!density_.isValid())
183 _imageInfo->density=(
char *) RelinquishMagickMemory(_imageInfo->density);
185 Magick::CloneString(&_imageInfo->density,density_);
188Magick::Geometry Magick::Options::density(
void)
const
190 if (_imageInfo->density)
191 return(
Geometry(_imageInfo->density));
196void Magick::Options::depth(
size_t depth_)
198 _imageInfo->depth=depth_;
201size_t Magick::Options::depth(
void)
const
203 return(_imageInfo->depth);
206void Magick::Options::endian(Magick::EndianType endian_)
208 _imageInfo->endian=endian_;
211Magick::EndianType Magick::Options::endian(
void)
const
213 return(_imageInfo->endian);
216void Magick::Options::file(FILE *file_)
218 SetImageInfoFile(_imageInfo,file_);
221FILE *Magick::Options::file(
void)
const
223 return(GetImageInfoFile(_imageInfo));
226void Magick::Options::fileName(
const std::string &fileName_)
231 max_length=
sizeof(_imageInfo->filename)-1;
232 fileName_.copy(_imageInfo->filename,max_length);
233 if ((ssize_t) fileName_.length() > max_length)
234 _imageInfo->filename[max_length]=0;
236 _imageInfo->filename[fileName_.length()]=0;
239std::string Magick::Options::fileName(
void)
const
241 return(std::string(_imageInfo->filename));
244void Magick::Options::fillColor(
const Magick::Color &fillColor_)
246 _drawInfo->fill=fillColor_;
247 if (fillColor_ == Magick::Color())
248 fillPattern((
const MagickCore::Image*) NULL);
249 setOption(
"fill",fillColor_);
252Magick::Color Magick::Options::fillColor(
void)
const
254 return(_drawInfo->fill);
257void Magick::Options::fillPattern(
const MagickCore::Image *fillPattern_)
259 if (_drawInfo->fill_pattern)
261 DestroyImageList(_drawInfo->fill_pattern);
262 _drawInfo->fill_pattern=0;
267 _drawInfo->fill_pattern=CloneImage(
const_cast<MagickCore::Image*
>(
268 fillPattern_),0,0,
static_cast<MagickBooleanType
>(MagickTrue),
270 ThrowPPException(_quiet);
274const MagickCore::Image *Magick::Options::fillPattern(
void)
const
276 return(_drawInfo->fill_pattern);
279void Magick::Options::fillRule(
const Magick::FillRule &fillRule_)
281 _drawInfo->fill_rule=fillRule_;
284Magick::FillRule Magick::Options::fillRule(
void)
const
286 return(_drawInfo->fill_rule);
289void Magick::Options::font(
const std::string &font_)
291 if (font_.length() == 0)
293 _imageInfo->font=(
char *) RelinquishMagickMemory(_imageInfo->font);
294 _drawInfo->font=(
char *) RelinquishMagickMemory(_drawInfo->font);
298 Magick::CloneString(&_imageInfo->font,font_);
299 Magick::CloneString(&_drawInfo->font,font_);
303std::string Magick::Options::font(
void)
const
305 if (_imageInfo->font)
306 return(std::string(_imageInfo->font));
308 return(std::string());
311void Magick::Options::fontFamily(
const std::string &family_)
313 if (family_.length() == 0)
315 _drawInfo->family=(
char *) RelinquishMagickMemory(_drawInfo->font);
316 DestroyString(RemoveImageOption(imageInfo(),
"family"));
320 Magick::CloneString(&_drawInfo->family,family_);
321 (void) SetImageOption(imageInfo(),
"family",family_.c_str());
325std::string Magick::Options::fontFamily(
void)
const
327 if (_drawInfo->family)
328 return(std::string(_drawInfo->family));
330 return(std::string());
333void Magick::Options::fontPointsize(
double pointSize_)
335 _imageInfo->pointsize=pointSize_;
336 _drawInfo->pointsize=pointSize_;
339double Magick::Options::fontPointsize(
void)
const
341 return(_imageInfo->pointsize);
344void Magick::Options::fontStyle(
const StyleType style_)
346 _drawInfo->style=style_;
347 (void) SetImageOption(_imageInfo,
"style",CommandOptionToMnemonic(
348 MagickStyleOptions,(ssize_t) style_));
351Magick::StyleType Magick::Options::fontStyle(
void)
const
353 return(_drawInfo->style);
356void Magick::Options::fontWeight(
const size_t weight_)
358 _drawInfo->weight=weight_;
359 setOption(
"weight",(
double) weight_);
362size_t Magick::Options::fontWeight(
void)
const
364 return(_drawInfo->weight);
368std::string Magick::Options::format(
void)
const
374 if (*_imageInfo->magick !=
'\0')
375 magick_info=GetMagickInfo(_imageInfo->magick,exceptionInfo);
376 ThrowPPException(_quiet);
378 if ((magick_info != 0) && (*magick_info->description !=
'\0'))
379 return(std::string(magick_info->description));
381 return(std::string());
384void Magick::Options::interlaceType(Magick::InterlaceType interlace_)
386 _imageInfo->interlace=interlace_;
389Magick::InterlaceType Magick::Options::interlaceType(
void)
const
391 return(
static_cast<Magick::InterlaceType
>(_imageInfo->interlace));
394void Magick::Options::magick(
const std::string &magick_)
398 _imageInfo->magick[0] =
'\0';
402 FormatLocaleString(_imageInfo->filename,MaxTextExtent,
"%.1024s:",
405 SetImageInfo(_imageInfo,1,exceptionInfo);
406 ThrowPPException(_quiet);
407 if ( _imageInfo->magick[0] ==
'\0' )
408 throwExceptionExplicit(OptionWarning,
"Unrecognized image format",
412std::string Magick::Options::magick(
void)
const
414 if ( _imageInfo->magick[0] !=
'\0' )
415 return(std::string(_imageInfo->magick));
417 return(std::string());
420void Magick::Options::matteColor(
const Magick::Color &matteColor_)
422 _imageInfo->matte_color=matteColor_;
425Magick::Color Magick::Options::matteColor(
void)
const
427 return(Magick::Color(_imageInfo->matte_color));
430void Magick::Options::monochrome(
bool monochromeFlag_)
432 _imageInfo->monochrome=(MagickBooleanType) monochromeFlag_;
435bool Magick::Options::monochrome(
void)
const
437 return(
static_cast<bool>(_imageInfo->monochrome));
440void Magick::Options::page(
const Magick::Geometry &pageSize_)
442 if (!pageSize_.isValid())
443 _imageInfo->page=(
char *) RelinquishMagickMemory(_imageInfo->page);
445 Magick::CloneString(&_imageInfo->page,pageSize_);
448Magick::Geometry Magick::Options::page(
void)
const
450 if (_imageInfo->page)
456void Magick::Options::quality(
size_t quality_)
458 _imageInfo->quality=quality_;
461size_t Magick::Options::quality(
void)
const
463 return(_imageInfo->quality);
466void Magick::Options::quantizeColors(
size_t colors_)
468 _quantizeInfo->number_colors=colors_;
471size_t Magick::Options::quantizeColors(
void)
const
473 return(_quantizeInfo->number_colors);
476void Magick::Options::quantizeColorSpace(Magick::ColorspaceType colorSpace_)
478 _quantizeInfo->colorspace=colorSpace_;
481Magick::ColorspaceType Magick::Options::quantizeColorSpace(
void)
const
483 return(
static_cast<Magick::ColorspaceType
>(_quantizeInfo->colorspace));
486void Magick::Options::quantizeDither(
bool ditherFlag_)
488 _imageInfo->dither=(MagickBooleanType) ditherFlag_;
489 _quantizeInfo->dither=(MagickBooleanType) ditherFlag_;
492bool Magick::Options::quantizeDither(
void)
const
494 return(
static_cast<bool>(_imageInfo->dither));
497void Magick::Options::quantizeDitherMethod(DitherMethod ditherMethod_)
499 _quantizeInfo->dither_method=ditherMethod_;
502MagickCore::DitherMethod Magick::Options::quantizeDitherMethod(
void)
const
504 return(_quantizeInfo->dither_method);
507void Magick::Options::quantizeTreeDepth(
size_t treeDepth_)
509 _quantizeInfo->tree_depth=treeDepth_;
512size_t Magick::Options::quantizeTreeDepth(
void)
const
514 return(_quantizeInfo->tree_depth);
517void Magick::Options::quiet(
const bool quiet_)
522bool Magick::Options::quiet(
void)
const
527void Magick::Options::resolutionUnits(Magick::ResolutionType resolutionUnits_)
529 _imageInfo->units=resolutionUnits_;
532Magick::ResolutionType Magick::Options::resolutionUnits(
void)
const
534 return(_imageInfo->units);
537void Magick::Options::samplingFactor(
const std::string &samplingFactor_)
539 if (samplingFactor_.length() == 0)
540 _imageInfo->sampling_factor=(
char *) RelinquishMagickMemory(
541 _imageInfo->sampling_factor);
543 Magick::CloneString(&_imageInfo->sampling_factor, samplingFactor_);
546std::string Magick::Options::samplingFactor(
void)
const
548 if (_imageInfo->sampling_factor)
549 return(std::string(_imageInfo->sampling_factor));
551 return(std::string());
554void Magick::Options::size(
const Geometry &geometry_)
556 _imageInfo->size=(
char *) RelinquishMagickMemory(_imageInfo->size);
558 if ( geometry_.isValid() )
559 Magick::CloneString(&_imageInfo->size,geometry_);
562Magick::Geometry Magick::Options::size(
void)
const
564 if (_imageInfo->size)
570void Magick::Options::strokeAntiAlias(
bool flag_)
572 flag_ ? _drawInfo->stroke_antialias=MagickTrue :
573 _drawInfo->stroke_antialias=MagickFalse;
576bool Magick::Options::strokeAntiAlias(
void)
const
578 return(_drawInfo->stroke_antialias != 0 ?
true :
false);
581void Magick::Options::strokeColor(
const Magick::Color &strokeColor_)
583 _drawInfo->stroke=strokeColor_;
584 if (strokeColor_ == Magick::Color())
585 strokePattern((
const MagickCore::Image*) NULL);
586 setOption(
"stroke",strokeColor_);
589Magick::Color Magick::Options::strokeColor(
void)
const
591 return(_drawInfo->stroke);
594void Magick::Options::strokeDashArray(
const double *strokeDashArray_)
596 _drawInfo->dash_pattern=(
double *) RelinquishMagickMemory(
597 _drawInfo->dash_pattern);
605 for (x=0; strokeDashArray_[x]; x++) ;
607 _drawInfo->dash_pattern=
static_cast<double*
>(AcquireMagickMemory((x+1)*
609 if (!_drawInfo->dash_pattern)
610 throwExceptionExplicit(MagickCore::ResourceLimitError,
611 "Unable to allocate dash-pattern memory");
615 memcpy(_drawInfo->dash_pattern,strokeDashArray_,(x+1)*
sizeof(
double));
616 _drawInfo->dash_pattern[x]=0.0;
621const double *Magick::Options::strokeDashArray(
void)
const
623 return(_drawInfo->dash_pattern);
626void Magick::Options::strokeDashOffset(
double strokeDashOffset_)
628 _drawInfo->dash_offset=strokeDashOffset_;
631double Magick::Options::strokeDashOffset(
void)
const
633 return(_drawInfo->dash_offset);
636void Magick::Options::strokeLineCap(Magick::LineCap lineCap_)
638 _drawInfo->linecap=lineCap_;
641Magick::LineCap Magick::Options::strokeLineCap(
void)
const
643 return(_drawInfo->linecap);
646void Magick::Options::strokeLineJoin(Magick::LineJoin lineJoin_)
648 _drawInfo->linejoin=lineJoin_;
651Magick::LineJoin Magick::Options::strokeLineJoin(
void)
const
653 return(_drawInfo->linejoin);
656void Magick::Options::strokeMiterLimit(
size_t miterLimit_)
658 _drawInfo->miterlimit=miterLimit_;
661size_t Magick::Options::strokeMiterLimit(
void)
const
663 return(_drawInfo->miterlimit);
666void Magick::Options::strokePattern(
const MagickCore::Image *strokePattern_)
668 if (_drawInfo->stroke_pattern)
669 _drawInfo->stroke_pattern=DestroyImageList(_drawInfo->stroke_pattern);
674 _drawInfo->stroke_pattern=CloneImage(
const_cast<MagickCore::Image*
>(
675 strokePattern_),0,0,MagickTrue,exceptionInfo);
676 ThrowPPException(_quiet);
680const MagickCore::Image *Magick::Options::strokePattern(
void)
const
682 return(_drawInfo->stroke_pattern);
685void Magick::Options::strokeWidth(
double strokeWidth_)
687 _drawInfo->stroke_width=strokeWidth_;
690double Magick::Options::strokeWidth(
void)
const
692 return(_drawInfo->stroke_width);
695void Magick::Options::subImage(
size_t subImage_)
697 _imageInfo->scene=subImage_;
700size_t Magick::Options::subImage(
void)
const
702 return(_imageInfo->scene);
705void Magick::Options::subRange(
size_t subRange_)
707 _imageInfo->number_scenes=subRange_;
710size_t Magick::Options::subRange(
void)
const
712 return(_imageInfo->number_scenes);
715void Magick::Options::textDirection(DirectionType direction_)
717 _drawInfo->direction=direction_;
718 (void) SetImageOption(_imageInfo,
"direction",CommandOptionToMnemonic(
719 MagickDirectionOptions,(ssize_t) direction_));
722Magick::DirectionType Magick::Options::textDirection()
const
724 return(_drawInfo->direction);
727void Magick::Options::textEncoding(
const std::string &encoding_)
729 CloneString(&_drawInfo->encoding,encoding_.c_str());
730 (void) SetImageOption(imageInfo(),
"encoding",encoding_.c_str());
733std::string Magick::Options::textEncoding(
void)
const
735 if (_drawInfo->encoding && *_drawInfo->encoding)
736 return(std::string(_drawInfo->encoding));
738 return(std::string());
741void Magick::Options::textGravity(GravityType gravity_)
743 _drawInfo->gravity=gravity_;
744 (void) SetImageOption(_imageInfo,
"gravity",CommandOptionToMnemonic(
745 MagickGravityOptions,(ssize_t) gravity_));
748Magick::GravityType Magick::Options::textGravity()
const
750 return(_drawInfo->gravity);
753void Magick::Options::textInterlineSpacing(
double spacing_)
755 _drawInfo->interline_spacing=spacing_;
756 setOption(
"interline-spacing",spacing_);
759double Magick::Options::textInterlineSpacing(
void)
const
761 return(_drawInfo->interline_spacing);
764void Magick::Options::textInterwordSpacing(
double spacing_)
766 _drawInfo->interword_spacing=spacing_;
767 setOption(
"interword-spacing",spacing_);
770double Magick::Options::textInterwordSpacing(
void)
const
772 return(_drawInfo->interword_spacing);
775void Magick::Options::textKerning(
double kerning_)
777 _drawInfo->kerning=kerning_;
778 setOption(
"kerning",kerning_);
781double Magick::Options::textKerning(
void)
const
783 return(_drawInfo->kerning);
786void Magick::Options::textUnderColor(
const Magick::Color &undercolor_)
788 _drawInfo->undercolor=undercolor_;
789 setOption(
"undercolor",undercolor_);
792Magick::Color Magick::Options::textUnderColor(
void)
const
794 return(_drawInfo->undercolor);
798void Magick::Options::tileName(
const std::string &tileName_)
800 if (tileName_.length() == 0)
801 _imageInfo->tile=(
char *) RelinquishMagickMemory(_imageInfo->tile);
803 Magick::CloneString(&_imageInfo->tile,tileName_);
806std::string Magick::Options::tileName(
void)
const
808 if (_imageInfo->tile)
809 return(std::string(_imageInfo->tile));
810 return(std::string());
813void Magick::Options::transformOrigin(
double tx_,
double ty_)
817 current=_drawInfo->affine;
829 _drawInfo->affine.sx=current.sx*affine.sx+current.ry*affine.rx;
830 _drawInfo->affine.rx=current.rx*affine.sx+current.sy*affine.rx;
831 _drawInfo->affine.ry=current.sx*affine.ry+current.ry*affine.sy;
832 _drawInfo->affine.sy=current.rx*affine.ry+current.sy*affine.sy;
833 _drawInfo->affine.tx=current.sx*affine.tx+current.ry*affine.ty+current.tx;
834 _drawInfo->affine.ty=current.rx*affine.tx+current.sy*affine.ty+current.ty;
837void Magick::Options::transformReset(
void)
839 _drawInfo->affine.sx=1.0;
840 _drawInfo->affine.rx=0.0;
841 _drawInfo->affine.ry=0.0;
842 _drawInfo->affine.sy=1.0;
843 _drawInfo->affine.tx=0.0;
844 _drawInfo->affine.ty=0.0;
847void Magick::Options::transformRotation(
double angle_)
851 current=_drawInfo->affine;
860 affine.sx=cos(DegreesToRadians(fmod(angle_,360.0)));
861 affine.rx=(-sin(DegreesToRadians(fmod(angle_,360.0))));
862 affine.ry=sin(DegreesToRadians(fmod(angle_,360.0)));
863 affine.sy=cos(DegreesToRadians(fmod(angle_,360.0)));
865 _drawInfo->affine.sx=current.sx*affine.sx+current.ry*affine.rx;
866 _drawInfo->affine.rx=current.rx*affine.sx+current.sy*affine.rx;
867 _drawInfo->affine.ry=current.sx*affine.ry+current.ry*affine.sy;
868 _drawInfo->affine.sy=current.rx*affine.ry+current.sy*affine.sy;
869 _drawInfo->affine.tx=current.sx*affine.tx+current.ry*affine.ty+current.tx;
870 _drawInfo->affine.ty=current.rx*affine.tx+current.sy*affine.ty+current.ty;
873void Magick::Options::transformScale(
double sx_,
double sy_)
877 current=_drawInfo->affine;
889 _drawInfo->affine.sx=current.sx*affine.sx+current.ry*affine.rx;
890 _drawInfo->affine.rx=current.rx*affine.sx+current.sy*affine.rx;
891 _drawInfo->affine.ry=current.sx*affine.ry+current.ry*affine.sy;
892 _drawInfo->affine.sy=current.rx*affine.ry+current.sy*affine.sy;
893 _drawInfo->affine.tx=current.sx*affine.tx+current.ry*affine.ty+current.tx;
894 _drawInfo->affine.ty=current.rx*affine.tx+current.sy*affine.ty+current.ty;
897void Magick::Options::transformSkewX(
double skewx_)
901 current=_drawInfo->affine;
911 affine.ry=tan(DegreesToRadians(fmod(skewx_,360.0)));
914 _drawInfo->affine.sx=current.sx*affine.sx+current.ry*affine.rx;
915 _drawInfo->affine.rx=current.rx*affine.sx+current.sy*affine.rx;
916 _drawInfo->affine.ry=current.sx*affine.ry+current.ry*affine.sy;
917 _drawInfo->affine.sy=current.rx*affine.ry+current.sy*affine.sy;
918 _drawInfo->affine.tx=current.sx*affine.tx+current.ry*affine.ty+current.tx;
919 _drawInfo->affine.ty=current.rx*affine.tx+current.sy*affine.ty+current.ty;
922void Magick::Options::transformSkewY(
double skewy_)
926 current=_drawInfo->affine;
936 affine.rx=tan(DegreesToRadians(fmod(skewy_,360.0)));
939 _drawInfo->affine.sx=current.sx*affine.sx+current.ry*affine.rx;
940 _drawInfo->affine.rx=current.rx*affine.sx+current.sy*affine.rx;
941 _drawInfo->affine.ry=current.sx*affine.ry+current.ry*affine.sy;
942 _drawInfo->affine.sy=current.rx*affine.ry+current.sy*affine.sy;
943 _drawInfo->affine.tx=current.sx*affine.tx+current.ry*affine.ty+current.tx;
944 _drawInfo->affine.ty=current.rx*affine.tx+current.sy*affine.ty+current.ty;
947void Magick::Options::type(
const Magick::ImageType type_)
949 _imageInfo->type=type_;
952Magick::ImageType Magick::Options::type(
void)
const
954 return(_imageInfo->type);
957void Magick::Options::verbose(
bool verboseFlag_)
959 _imageInfo->verbose=(MagickBooleanType) verboseFlag_;
962bool Magick::Options::verbose(
void)
const
964 return(
static_cast<bool>(_imageInfo->verbose));
967void Magick::Options::virtualPixelMethod(
968 VirtualPixelMethod virtual_pixel_method_)
970 _imageInfo->virtual_pixel_method=virtual_pixel_method_;
973Magick::VirtualPixelMethod Magick::Options::virtualPixelMethod(
void)
const
975 return(
static_cast<Magick::VirtualPixelMethod
>(
976 _imageInfo->virtual_pixel_method));
979void Magick::Options::view(
const std::string &view_)
981 if (view_.length() == 0)
982 _imageInfo->view=(
char *) RelinquishMagickMemory(_imageInfo->view);
984 Magick::CloneString(&_imageInfo->view,view_);
987std::string Magick::Options::view(
void)
const
989 if (_imageInfo->view)
990 return(std::string(_imageInfo->view));
992 return(std::string());
995void Magick::Options::x11Display(
const std::string &display_)
997 if (display_.length() == 0)
998 _imageInfo->server_name=(
char *) RelinquishMagickMemory(
999 _imageInfo->server_name);
1001 Magick::CloneString(&_imageInfo->server_name,display_);
1004std::string Magick::Options::x11Display(
void)
const
1006 if (_imageInfo->server_name)
1007 return(std::string(_imageInfo->server_name));
1009 return(std::string());
1012MagickCore::DrawInfo *Magick::Options::drawInfo(
void)
1017MagickCore::ImageInfo *Magick::Options::imageInfo(
void)
1022MagickCore::QuantizeInfo *Magick::Options::quantizeInfo(
void )
1024 return(_quantizeInfo);
1027Magick::Options::Options(
const MagickCore::ImageInfo *imageInfo_,
1028 const MagickCore::QuantizeInfo *quantizeInfo_,
1029 const MagickCore::DrawInfo *drawInfo_)
1030: _imageInfo((MagickCore::ImageInfo* ) NULL),
1031 _quantizeInfo((MagickCore::QuantizeInfo* ) NULL),
1032 _drawInfo((MagickCore::DrawInfo* ) NULL),
1035 _imageInfo=CloneImageInfo(imageInfo_);
1036 _quantizeInfo=CloneQuantizeInfo(quantizeInfo_);
1037 _drawInfo=CloneDrawInfo(imageInfo_,drawInfo_);
1040void Magick::Options::setOption(
const char *name,
const Color &value_)
1046 (void) SetImageOption(imageInfo(),name,option.c_str());
1049void Magick::Options::setOption(
const char *name,
const double value_)
1052 option[MaxTextExtent];
1054 (void) FormatLocaleString(option,MaxTextExtent,
"%.20g",value_);
1055 (void) SetImageOption(_imageInfo,name,option);