本文整理汇总了C++中GetImageOption函数的典型用法代码示例。如果您正苦于以下问题:C++ GetImageOption函数的具体用法?C++ GetImageOption怎么用?C++ GetImageOption使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了GetImageOption函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: GetQuantumInfo
/*
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% %
% %
% G e t Q u a n t u m I n f o %
% %
% %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% GetQuantumInfo() initializes the QuantumInfo structure to default values.
%
% The format of the GetQuantumInfo method is:
%
% GetQuantumInfo(const ImageInfo *image_info,QuantumInfo *quantum_info)
%
% A description of each parameter follows:
%
% o image_info: the image info.
%
% o quantum_info: the quantum info.
%
*/
MagickExport void GetQuantumInfo(const ImageInfo *image_info,
QuantumInfo *quantum_info)
{
const char
*option;
assert(quantum_info != (QuantumInfo *) NULL);
(void) ResetMagickMemory(quantum_info,0,sizeof(*quantum_info));
quantum_info->quantum=8;
quantum_info->maximum=1.0;
quantum_info->scale=QuantumRange;
quantum_info->pack=MagickTrue;
quantum_info->semaphore=AcquireSemaphoreInfo();
quantum_info->signature=MagickCoreSignature;
if (image_info == (const ImageInfo *) NULL)
return;
option=GetImageOption(image_info,"quantum:format");
if (option != (char *) NULL)
quantum_info->format=(QuantumFormatType) ParseCommandOption(
MagickQuantumFormatOptions,MagickFalse,option);
option=GetImageOption(image_info,"quantum:minimum");
if (option != (char *) NULL)
quantum_info->minimum=StringToDouble(option,(char **) NULL);
option=GetImageOption(image_info,"quantum:maximum");
if (option != (char *) NULL)
quantum_info->maximum=StringToDouble(option,(char **) NULL);
if ((quantum_info->minimum == 0.0) && (quantum_info->maximum == 0.0))
quantum_info->scale=0.0;
else
if (quantum_info->minimum == quantum_info->maximum)
{
quantum_info->scale=(double) QuantumRange/quantum_info->minimum;
quantum_info->minimum=0.0;
}
else
quantum_info->scale=(double) QuantumRange/(quantum_info->maximum-
quantum_info->minimum);
option=GetImageOption(image_info,"quantum:scale");
if (option != (char *) NULL)
quantum_info->scale=StringToDouble(option,(char **) NULL);
option=GetImageOption(image_info,"quantum:polarity");
if (option != (char *) NULL)
quantum_info->min_is_white=LocaleCompare(option,"min-is-white") == 0 ?
MagickTrue : MagickFalse;
quantum_info->endian=image_info->endian;
ResetQuantumState(quantum_info);
}
开发者ID:greg5678,项目名称:ImageMagick,代码行数:71,代码来源:quantum.c
示例2: ReadDOTImage
/*
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% %
% %
% R e a d D O T I m a g e %
% %
% %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% ReadDOTImage() reads a Graphviz image file and returns it. It allocates
% the memory necessary for the new Image structure and returns a pointer to
% the new image.
%
% The format of the ReadDOTImage method is:
%
% Image *ReadDOTImage(const ImageInfo *image_info,ExceptionInfo *exception)
%
% A description of each parameter follows:
%
% o image_info: The image info.
%
% o exception: return any errors or warnings in this structure.
%
*/
static Image *ReadDOTImage(const ImageInfo *image_info,ExceptionInfo *exception)
{
char
command[MaxTextExtent];
const char
*option;
graph_t
*graph;
Image
*image;
ImageInfo
*read_info;
MagickBooleanType
status;
/*
Open image file.
*/
assert(image_info != (const ImageInfo *) NULL);
assert(image_info->signature == MagickSignature);
if (image_info->debug != MagickFalse)
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",
image_info->filename);
assert(exception != (ExceptionInfo *) NULL);
assert(exception->signature == MagickSignature);
image=AllocateImage(image_info);
status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception);
if (status == MagickFalse)
return((Image *) NULL);
read_info=CloneImageInfo(image_info);
(void) CopyMagickString(read_info->magick,"PS",MaxTextExtent);
(void) AcquireUniqueFilename(read_info->filename);
(void) FormatMagickString(command,MaxTextExtent,"-Tps2 -o%s %s",
read_info->filename,image_info->filename);
graph=agread(GetBlobFileHandle(image));
if (graph == (graph_t *) NULL)
return ((Image *) NULL);
option=GetImageOption(image_info,"dot:layout-engine");
if (option == (const char *) NULL)
gvLayout(graphic_context,graph,"dot");
else
gvLayout(graphic_context,graph,(char *) option);
gvRenderFilename(graphic_context,graph,"ps2",read_info->filename);
gvFreeLayout(graphic_context,graph);
/*
Read Postscript graph.
*/
image=ReadImage(read_info,exception);
(void) RelinquishUniqueFileResource(read_info->filename);
read_info=DestroyImageInfo(read_info);
if (image == (Image *) NULL)
return((Image *) NULL);
return(GetFirstImageInList(image));
}
开发者ID:scuddalo,项目名称:cq,代码行数:85,代码来源:dot.c
示例3: ReadXImage
/*
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% %
% %
% R e a d X I m a g e %
% %
% %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% ReadXImage() reads an image from an X window.
%
% The format of the ReadXImage method is:
%
% Image *ReadXImage(const ImageInfo *image_info,ExceptionInfo *exception)
%
% A description of each parameter follows:
%
% o image_info: the image info.
%
% o exception: return any errors or warnings in this structure.
%
*/
static Image *ReadXImage(const ImageInfo *image_info,ExceptionInfo *exception)
{
const char
*option;
XImportInfo
ximage_info;
(void) exception;
XGetImportInfo(&ximage_info);
option=GetImageOption(image_info,"x:screen");
if (option != (const char *) NULL)
ximage_info.screen=IsMagickTrue(option);
option=GetImageOption(image_info,"x:silent");
if (option != (const char *) NULL)
ximage_info.silent=IsMagickTrue(option);
return(XImportImage(image_info,&ximage_info,exception));
}
开发者ID:ChaseReid,项目名称:ImageMagick,代码行数:42,代码来源:x.c
示例4: Info_page
VALUE
Info_page(VALUE self)
{
Info *info;
const char *page;
Data_Get_Struct(self, Info, info);
page = GetImageOption(info, "page");
return page ? rb_str_new2(page) : Qnil;
}
开发者ID:AzkaarAli,项目名称:leihs,代码行数:11,代码来源:rminfo.c
示例5: return
static inline const char *GetCINProperty(const ImageInfo *image_info,
const Image *image,const char *property,ExceptionInfo *exception)
{
const char
*value;
value=GetImageOption(image_info,property);
if (value != (const char *) NULL)
return(value);
return(GetImageProperty(image,property,exception));
}
开发者ID:0xPr0xy,项目名称:ImageMagick,代码行数:11,代码来源:cin.c
示例6: Info_origin
/*
Method: Info#origin
Purpose: Return origin geometry
*/
VALUE
Info_origin(VALUE self)
{
Info *info;
const char *origin;
Data_Get_Struct(self, Info, info);
origin = GetImageOption(info, "origin");
return origin ? rb_str_new2(origin) : Qnil;
}
开发者ID:AzkaarAli,项目名称:leihs,代码行数:15,代码来源:rminfo.c
示例7: get_option
/*
Method: Info#get_option
Purpose: Return the value of the specified option
*/
static VALUE
get_option(VALUE self, const char *key)
{
Info *info;
const char *value;
Data_Get_Struct(self, Info, info);
value = GetImageOption(info, key);
if (value)
{
return rb_str_new2(value);
}
return Qnil;
}
开发者ID:AzkaarAli,项目名称:leihs,代码行数:19,代码来源:rminfo.c
示例8: OutputOptions
/*
Temporary Debugging Information
FUTURE: these should be able to be printed out using 'percent escapes'
Actually 'Properities' can already be output with "%[*]"
*/
static void OutputOptions(ImageInfo *image_info)
{
const char
*option,
*value;
(void) FormatLocaleFile(stdout," Global Options:\n");
ResetImageOptionIterator(image_info);
while ((option=GetNextImageOption(image_info)) != (const char *) NULL ) {
(void) FormatLocaleFile(stdout," %s: ",option);
value=GetImageOption(image_info,option);
if (value != (const char *) NULL)
(void) FormatLocaleFile(stdout,"%s\n",value);
}
ResetImageOptionIterator(image_info);
}
开发者ID:Ladeira,项目名称:ImageMagick,代码行数:21,代码来源:magick-cli.c
示例9: copy_options
static void copy_options(Image *image, Info *info)
{
char property[MaxTextExtent];
const char *value, *option;
ResetImageOptionIterator(info);
for (option = GetNextImageOption(info); option; option = GetNextImageOption(info))
{
value = GetImageOption(info,option);
if (value)
{
strncpy(property, value, MaxTextExtent);
property[MaxTextExtent-1] = '\0';
(void) SetImageArtifact(image, property, value);
}
}
}
开发者ID:r-project,项目名称:BS,代码行数:17,代码来源:rmutil.c
示例10: Info_tile_offset
/*
Method: Image::Info#tile_offset
Purpose: returns tile_offset attribute values
*/
VALUE
Info_tile_offset(VALUE self)
{
Info *info;
const char *tile_offset;
Data_Get_Struct(self, Info, info);
tile_offset = GetImageOption(info, "tile-offset");
if (!tile_offset)
{
return Qnil;
}
return rb_str_new2(tile_offset);
}
开发者ID:AzkaarAli,项目名称:leihs,代码行数:21,代码来源:rminfo.c
示例11: get_dbl_option
/*
Static: get_dbl_option(obj, option)
Purpose: Get an Image::Info option floating-point value
Notes: Convert the string value to a float
*/
static VALUE get_dbl_option(VALUE self, const char *option)
{
Info *info;
const char *value;
double d;
long n;
Data_Get_Struct(self, Info, info);
value = GetImageOption(info, option);
if (!value)
{
return Qnil;
}
d = atof(value);
n = (long) floor(d);
return d == (double)n ? LONG2NUM(n) : rb_float_new(d);
}
开发者ID:AzkaarAli,项目名称:leihs,代码行数:24,代码来源:rminfo.c
示例12: Info_aref
VALUE
Info_aref(int argc, VALUE *argv, VALUE self)
{
Info *info;
char *format_p, *key_p;
long format_l, key_l;
const char *value;
char fkey[MaxTextExtent];
switch (argc)
{
case 2:
format_p = rm_str2cstr(argv[0], &format_l);
key_p = rm_str2cstr(argv[1], &key_l);
if (format_l > MAX_FORMAT_LEN || format_l + key_l > MaxTextExtent-1)
{
rb_raise(rb_eArgError, "can't reference %.60s:%.1024s - too long", format_p, key_p);
}
sprintf(fkey, "%.60s:%.*s", format_p, (int)(MaxTextExtent-61), key_p);
break;
case 1:
strncpy(fkey, StringValuePtr(argv[0]), sizeof(fkey)-1);
fkey[sizeof(fkey)-1] = '\0';
break;
default:
rb_raise(rb_eArgError, "wrong number of arguments (%d for 1 or 2)", argc);
break;
}
Data_Get_Struct(self, Info, info);
value = GetImageOption(info, fkey);
if (!value)
{
return Qnil;
}
return rb_str_new2(value);
}
开发者ID:AzkaarAli,项目名称:leihs,代码行数:42,代码来源:rminfo.c
示例13: rm_set_user_artifact
/*
Function: rm_set_user_artifact
Purpose: If a "user" option is present in the Info, assign its value to
a "user" artifact in each image.
*/
void rm_set_user_artifact(Image *images, Info *info)
{
#if defined(HAVE_SETIMAGEARTIFACT)
Image *image;
const char *value;
value = GetImageOption(info, "user");
if (value)
{
image = GetFirstImageInList(images);
while (image)
{
(void) SetImageArtifact(image, "user", value);
image = GetNextImageInList(image);
}
}
#else
images = images;
info = info;
#endif
}
开发者ID:r-project,项目名称:BS,代码行数:26,代码来源:rmutil.c
示例14: Info_delay
/*
Method: Info#delay
Purpose: Get the delay attribute
Notes: Convert from string to numeric
*/
VALUE
Info_delay(VALUE self)
{
Info *info;
const char *delay;
char *p;
long d;
Data_Get_Struct(self, Info, info);
delay = GetImageOption(info, "delay");
if (delay)
{
d = strtol(delay, &p, 10);
if (*p != '\0')
{
rb_raise(rb_eRangeError, "failed to convert %s to Numeric", delay);
}
return LONG2NUM(d);
}
return Qnil;
}
开发者ID:AzkaarAli,项目名称:leihs,代码行数:27,代码来源:rminfo.c
示例15: ReadImage
//.........这里部分代码省略.........
value=GetImageProperty(next,"exif:XResolution",exception);
if (value != (char *) NULL)
{
geometry_info.rho=next->resolution.x;
geometry_info.sigma=1.0;
flags=ParseGeometry(value,&geometry_info);
if (geometry_info.sigma != 0)
next->resolution.x=geometry_info.rho/geometry_info.sigma;
(void) DeleteImageProperty(next,"exif:XResolution");
}
value=GetImageProperty(next,"exif:YResolution",exception);
if (value != (char *) NULL)
{
geometry_info.rho=next->resolution.y;
geometry_info.sigma=1.0;
flags=ParseGeometry(value,&geometry_info);
if (geometry_info.sigma != 0)
next->resolution.y=geometry_info.rho/geometry_info.sigma;
(void) DeleteImageProperty(next,"exif:YResolution");
}
value=GetImageProperty(next,"tiff:ResolutionUnit",exception);
if (value == (char *) NULL)
value=GetImageProperty(next,"exif:ResolutionUnit",exception);
if (value != (char *) NULL)
{
next->units=(ResolutionType) (StringToLong(value)-1);
(void) DeleteImageProperty(next,"exif:ResolutionUnit");
(void) DeleteImageProperty(next,"tiff:ResolutionUnit");
}
if (next->page.width == 0)
next->page.width=next->columns;
if (next->page.height == 0)
next->page.height=next->rows;
option=GetImageOption(read_info,"caption");
if (option != (const char *) NULL)
{
property=InterpretImageProperties(read_info,next,option,exception);
(void) SetImageProperty(next,"caption",property,exception);
property=DestroyString(property);
}
option=GetImageOption(read_info,"comment");
if (option != (const char *) NULL)
{
property=InterpretImageProperties(read_info,next,option,exception);
(void) SetImageProperty(next,"comment",property,exception);
property=DestroyString(property);
}
option=GetImageOption(read_info,"label");
if (option != (const char *) NULL)
{
property=InterpretImageProperties(read_info,next,option,exception);
(void) SetImageProperty(next,"label",property,exception);
property=DestroyString(property);
}
if (LocaleCompare(next->magick,"TEXT") == 0)
(void) ParseAbsoluteGeometry("0x0+0+0",&next->page);
if ((read_info->extract != (char *) NULL) &&
(read_info->stream == (StreamHandler) NULL))
{
RectangleInfo
geometry;
flags=ParseAbsoluteGeometry(read_info->extract,&geometry);
if ((next->columns != geometry.width) ||
(next->rows != geometry.height))
{
开发者ID:ChaseReid,项目名称:ImageMagick,代码行数:67,代码来源:constitute.c
示例16: SyncImageSettings
/*
Extern: rm_sync_image_options
Purpose: Propagate ImageInfo values to the Image
Ref: SyncImageSettings (in mogrify.c)
*/
void rm_sync_image_options(Image *image, Info *info)
{
MagickStatusType flags;
GeometryInfo geometry_info;
const char *option;
// The option strings will be set only when their attribute values were
// set in the optional argument block.
option = GetImageOption(info,"background");
if (option)
{
image->background_color = info->background_color;
}
option = GetImageOption(info,"bordercolor");
if (option)
{
image->border_color = info->border_color;
}
if (info->colorspace != UndefinedColorspace)
{
image->colorspace = info->colorspace;
}
if (info->compression != UndefinedCompression)
{
image->compression = info->compression;
}
option = GetImageOption(info, "delay");
if (option)
{
image->delay = strtoul(option, NULL, 0);
}
if (info->density)
{
flags = ParseGeometry(info->density, &geometry_info);
image->x_resolution = geometry_info.rho;
image->y_resolution = geometry_info.sigma;
if ((flags & SigmaValue) == 0)
{
image->y_resolution = image->x_resolution;
}
}
if (info->depth != 0)
{
image->depth = info->depth;
}
option = GetImageOption(info, "dispose");
if (option)
{
image->dispose = rm_dispose_to_enum(option);
}
if (info->extract)
{
ParseAbsoluteGeometry(info->extract, &image->extract_info);
}
if (info->fuzz != 0.0)
{
image->fuzz = info->fuzz;
}
option = GetImageOption(info, "gravity");
if (option)
{
image->gravity = rm_gravity_to_enum(option);
}
if (info->interlace != NoInterlace)
{
image->interlace = info->interlace;
}
option = GetImageOption(info,"mattecolor");
if (option)
{
image->matte_color = info->matte_color;
}
if (info->orientation != UndefinedOrientation)
{
image->orientation = info->orientation;
}
if (info->page)
{
(void)ParseAbsoluteGeometry(info->page, &image->page);
}
//.........这里部分代码省略.........
开发者ID:r-project,项目名称:BS,代码行数:101,代码来源:rmutil.c
示例17: ReadPCLImage
//.........这里部分代码省略.........
if (count != 4)
continue;
/*
Set PCL render geometry.
*/
width=(size_t) floor(bounds.x2-bounds.x1+0.5);
height=(size_t) floor(bounds.y2-bounds.y1+0.5);
if (width > page.width)
page.width=width;
if (height > page.height)
page.height=height;
}
(void) CloseBlob(image);
/*
Render PCL with the GhostPCL delegate.
*/
if ((page.width == 0) || (page.height == 0))
(void) ParseAbsoluteGeometry(PSPageGeometry,&page);
if (image_info->page != (char *) NULL)
(void) ParseAbsoluteGeometry(image_info->page,&page);
(void) FormatLocaleString(geometry,MaxTextExtent,"%.20gx%.20g",(double)
page.width,(double) page.height);
if (image_info->monochrome != MagickFalse)
delegate_info=GetDelegateInfo("pcl:mono",(char *) NULL,exception);
else
if (cmyk != MagickFalse)
delegate_info=GetDelegateInfo("pcl:cmyk",(char *) NULL,exception);
else
delegate_info=GetDelegateInfo("pcl:color",(char *) NULL,exception);
if (delegate_info == (const DelegateInfo *) NULL)
return((Image *) NULL);
*options='\0';
if ((page.width == 0) || (page.height == 0))
(void) ParseAbsoluteGeometry(PSPageGeometry,&page);
if (image_info->page != (char *) NULL)
(void) ParseAbsoluteGeometry(image_info->page,&page);
(void) FormatLocaleString(density,MaxTextExtent,"%gx%g",
image->resolution.x,image->resolution.y);
page.width=(size_t) floor(page.width*image->resolution.x/delta.x+0.5);
page.height=(size_t) floor(page.height*image->resolution.y/delta.y+
0.5);
(void) FormatLocaleString(options,MaxTextExtent,"-g%.20gx%.20g ",(double)
page.width,(double) page.height);
image=DestroyImage(image);
read_info=CloneImageInfo(image_info);
*read_info->magick='\0';
if (read_info->number_scenes != 0)
{
if (read_info->number_scenes != 1)
(void) FormatLocaleString(options,MaxTextExtent,"-dLastPage=%.20g",
(double) (read_info->scene+read_info->number_scenes));
else
(void) FormatLocaleString(options,MaxTextExtent,
"-dFirstPage=%.20g -dLastPage=%.20g",(double) read_info->scene+1,
(double) (read_info->scene+read_info->number_scenes));
read_info->number_scenes=0;
if (read_info->scenes != (char *) NULL)
*read_info->scenes='\0';
}
option=GetImageOption(read_info,"authenticate");
if (option != (const char *) NULL)
(void) FormatLocaleString(options+strlen(options),MaxTextExtent,
" -sPCLPassword=%s",option);
(void) CopyMagickString(filename,read_info->filename,MaxTextExtent);
(void) AcquireUniqueFilename(read_info->filename);
(void) FormatLocaleString(command,MaxTextExtent,
GetDelegateCommands(delegate_info),
read_info->antialias != MagickFalse ? 4 : 1,
read_info->antialias != MagickFalse ? 4 : 1,density,options,
read_info->filename,input_filename);
status=SystemCommand(MagickFalse,read_info->verbose,command,exception) != 0 ?
MagickTrue : MagickFalse;
image=ReadImage(read_info,exception);
(void) RelinquishUniqueFileResource(read_info->filename);
(void) RelinquishUniqueFileResource(input_filename);
read_info=DestroyImageInfo(read_info);
if (image == (Image *) NULL)
ThrowReaderException(DelegateError,"PCLDelegateFailed");
if (LocaleCompare(image->magick,"BMP") == 0)
{
Image
*cmyk_image;
cmyk_image=ConsolidateCMYKImages(image,exception);
if (cmyk_image != (Image *) NULL)
{
image=DestroyImageList(image);
image=cmyk_image;
}
}
do
{
(void) CopyMagickString(image->filename,filename,MaxTextExtent);
image->page=page;
next_image=SyncNextImageInList(image);
if (next_image != (Image *) NULL)
image=next_image;
} while (next_image != (Image *) NULL);
return(GetFirstImageInList(image));
}
开发者ID:ChaseReid,项目名称:ImageMagick,代码行数:101,代码来源:pcl.c
示例18: assert
static Image *ReadCAPTIONImage(const ImageInfo *image_info,
ExceptionInfo *exception)
{
char
*caption,
*property;
const char
*option;
DrawInfo
*draw_info;
FT_Bitmap
*canvas;
Image
*image;
PangoAlignment
align;
PangoContext
*context;
PangoFontDescription
*description;
PangoFontMap
*fontmap;
PangoGravity
gravity;
PangoLayout
*layout;
PangoRectangle
extent;
PixelPacket
fill_color;
RectangleInfo
page;
register PixelPacket
*q;
register unsigned char
*p;
ssize_t
y;
/*
Initialize Image structure.
*/
assert(image_info != (const ImageInfo *) NULL);
assert(image_info->signature == MagickSignature);
if (image_info->debug != MagickFalse)
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",
image_info->filename);
assert(exception != (ExceptionInfo *) NULL);
assert(exception->signature == MagickSignature);
image=AcquireImage(image_info);
(void) ResetImagePage(image,"0x0+0+0");
/*
Get context.
*/
fontmap=(PangoFontMap *) pango_ft2_font_map_new();
pango_ft2_font_map_set_resolution((PangoFT2FontMap *) fontmap,
image->x_resolution,image->y_resolution);
option=GetImageOption(image_info,"caption:hinting");
pango_ft2_font_map_set_default_substitute((PangoFT2FontMap *) fontmap,
PangoSubstitute,(char *) option,NULL);
context=pango_font_map_create_context(fontmap);
option=GetImageOption(image_info,"caption:language");
if (option != (const char *) NULL)
pango_context_set_language(context,pango_language_from_string(option));
draw_info=CloneDrawInfo(image_info,(DrawInfo *) NULL);
pango_context_set_base_dir(context,draw_info->direction ==
RightToLeftDirection ? PANGO_DIRECTION_RTL : PANGO_DIRECTION_LTR);
switch (draw_info->gravity)
{
case NorthGravity: gravity=PANGO_GRAVITY_NORTH; break;
case WestGravity: gravity=PANGO_GRAVITY_WEST; break;
case EastGravity: gravity=PANGO_GRAVITY_EAST; break;
case SouthGravity: gravity=PANGO_GRAVITY_SOUTH; break;
default: gravity=PANGO_GRAVITY_AUTO; break;
}
pango_context_set_base_gravity(context,gravity);
option=GetImageOption(image_info,"caption:gravity-hint");
if (option != (const char *) NULL)
{
if (LocaleCompare(option,"line") == 0)
pango_context_set_gravity_hint(context,PANGO_GRAVITY_HINT_LINE);
if (LocaleCompare(option,"natural") == 0)
pango_context_set_gravity_hint(context,PANGO_GRAVITY_HINT_NATURAL);
if (LocaleCompare(option,"strong") == 0)
//.........这里部分代码省略.........
开发者ID:nfma,项目名称:configuration,代码行数:101,代码来源:caption.c
示例19: ReadDOTImage
/*
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% %
% %
% R e a d D O T I m a g e %
% %
% %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% ReadDOTImage() reads a Graphviz image file and returns it. It allocates
% the memory necessary for the new Image structure and returns a pointer to
% the new image.
%
% The format of the ReadDOTImage method is:
%
% Image *ReadDOTImage(const ImageInfo *image_info,ExceptionInfo *exception)
%
% A description of each parameter follows:
%
% o image_info: the image info.
%
% o exception: return any errors or warnings in this structure.
%
*/
static Image *ReadDOTImage(const ImageInfo *image_info,ExceptionInfo *exception)
{
char
command[MagickPathExtent];
const char
*option;
graph_t
*graph;
Image
*image;
ImageInfo
*read_info;
MagickBooleanType
status;
/*
Open image file.
*/
assert(image_info != (const ImageInfo *) NULL);
assert(image_info->signature == MagickCoreSignature);
if (image_info->debug != MagickFalse)
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",
image_info->filename);
assert(exception != (ExceptionInfo *) NULL);
assert(exception->signature == MagickCoreSignature);
assert(graphic_context != (GVC_t *) NULL);
image=AcquireImage(image_info,exception);
status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception);
if (status == MagickFalse)
return(DestroyImageList(image));
read_info=CloneImageInfo(image_info);
SetImageInfoBlob(read_info,(void *) NULL,0);
(void) CopyMagickString(read_info->magick,"SVG",MagickPathExtent);
(void) AcquireUniqueFilename(read_info->filename);
(void) FormatLocaleString(command,MagickPathExtent,"-Tsvg -o%s %s",
read_info->filename,image_info->filename);
#if !defined(WITH_CGRAPH)
graph=agread(GetBlobFileHandle(image));
#else
graph=agread(GetBlobFileHandle(image),(Agdisc_t *) NULL);
#endif
if (graph == (graph_t *) NULL)
{
(void) RelinquishUniqueFileResource(read_info->filename);
return(DestroyImageList(image));
}
option=GetImageOption(image_info,"dot:layout-engine");
if (option == (const char *) NULL)
gvLayout(graphic_context,graph,(char *) "dot");
else
gvLayout(graphic_context,graph,(char *) option);
gvRenderFilename(graphic_context,graph,(char *) "svg",read_info->filename);
gvFreeLayout(graphic_context,graph);
agclose(graph);
image=DestroyImageList(image);
/*
Read SVG graph.
*/
(void) CopyMagickString(read_info->magick,"SVG",MaxTextExtent);
image=ReadImage(read_info,exception);
(void) RelinquishUniqueFileResource(read_info->filename);
read_info=DestroyImageInfo(read_info);
if (image == (Image *) NULL)
return((Image *) NULL);
return(GetFirstImageInList(image));
}
开发者ID:ImageMagick,项目名称:ImageMagick,代码行数:97,代码来源:dot.c
示例20: WriteImage
//.........这里部分代码省略.........
return(MagickFalse);
}
image=image->clip_mask;
(void) SetImageInfo(write_info,1,sans_exception);
}
(void) CopyMagickString(filename,image->filename,MaxTextExtent);
(void) CopyMagickString(image->filename,write_info->filename,MaxTextExtent);
domain=CoderPolicyDomain;
rights=WritePolicyRights;
if (IsRightsAuthorized(domain,rights,write_info->magick) == MagickFalse)
{
sans_exception=DestroyExceptionInfo(sans_exception);
errno=EPERM;
ThrowBinaryException(PolicyError,"NotAuthorized",filename);
}
magick_info=GetMagickInfo(write_info->magick,sans_exception);
sans_exception=DestroyExceptionInfo(sans_exception);
if (magick_info != (const MagickInfo *) NULL)
{
if (GetMagickEndianSupport(magick_info) == MagickFalse)
image->endian=UndefinedEndian;
else
if ((image_info->endian == UndefinedEndian) &&
(GetMagickRawSupport(magick_info) != MagickFalse))
{
size_t
lsb_first;
lsb_first=1;
image->endian=(*(char *) &lsb_first) == 1 ? LSBEndian : MSBEndian;
}
}
(void) SyncImageProfiles(image);
option=GetImageOption(image_info,"delegate:bimodal");
if ((option != (const char *) NULL) &&
(IsMagickTrue(option) != MagickFalse) &&
(write_info->page == (char *) NULL) &&
(GetPreviousImageInList(image) == (Image *) NULL) &&
(GetNextImageInList(image) == (Image *) NULL) &&
(IsTaintImage(image) == MagickFalse))
{
delegate_info=GetDelegateInfo(image->magick,write_info->magick,exception);
if ((delegate_info != (const DelegateInfo *) NULL) &&
(GetDelegateMode(delegate_info) == 0) &&
(IsPathAccessible(image->magick_filename) != MagickFalse))
{
/*
Process image with bi-modal delegate.
*/
(void) CopyMagickString(image->filename,image->magick_filename,
MaxTextExtent);
status=InvokeDelegate(write_info,image,image->magick,
write_info->magick,exception);
write_info=DestroyImageInfo(write_info);
(void) CopyMagickString(image->filename,filename,MaxTextExtent);
return(status);
}
}
status=MagickFalse;
temporary=MagickFalse;
if ((magick_info != (const MagickInfo *) NULL) &&
(GetMagickSeekableStream(magick_info) != MagickFalse))
{
char
filename[MaxTextExtent];
开发者ID:ChaseReid,项目名称:ImageMagick,代码行数:66,代码来源:constitute.c
注:本文中的GetImageOption函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论