您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ GetImageProperty函数代码示例

51自学网 2021-06-01 21:09:19
  C++
这篇教程C++ GetImageProperty函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中GetImageProperty函数的典型用法代码示例。如果您正苦于以下问题:C++ GetImageProperty函数的具体用法?C++ GetImageProperty怎么用?C++ GetImageProperty使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了GetImageProperty函数的24个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: 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,


示例2: OutputProperties

static void OutputProperties(Image *image,ExceptionInfo *exception){  const char    *property,    *value;  (void) FormatLocaleFile(stdout,"  Image Properity:/n");  ResetImagePropertyIterator(image);  while ((property=GetNextImageProperty(image)) != (const char *) NULL ) {    (void) FormatLocaleFile(stdout,"    %s: ",property);    value=GetImageProperty(image,property,exception);    if (value != (const char *) NULL)      (void) FormatLocaleFile(stdout,"%s/n",value);  }  ResetImagePropertyIterator(image);}
开发者ID:Ladeira,项目名称:ImageMagick,代码行数:16,


示例3: parse_header

//.........这里部分代码省略.........	case PixelsPerCentimeterResolution:		im->Xres = image->x_resolution / 10.0;		im->Yres = image->y_resolution / 10.0;		break;	default:		im->Xres = 1.0;		im->Yres = 1.0;		break;	}	/* Other fields.	 */	im->Coding = VIPS_CODING_NONE;	vips_image_pipelinev( im, VIPS_DEMAND_STYLE_SMALLTILE, NULL );	/* Three ways to loop over attributes / properties :-(	 */#ifdef HAVE_RESETIMAGEPROPERTYITERATOR{	char *key;	/* This is the most recent imagemagick API, test for this first.	 */	ResetImagePropertyIterator( image );	while( (key = GetNextImageProperty( image )) ) {		char name_text[256];		VipsBuf name = VIPS_BUF_STATIC( name_text );		vips_buf_appendf( &name, "magick-%s", key );		vips_image_set_string( im, 			vips_buf_all( &name ), GetImageProperty( image, key ) );	}}#elif defined(HAVE_RESETIMAGEATTRIBUTEITERATOR){	const ImageAttribute *attr;	/* magick6.1-ish and later, deprecated in 6.5ish.	 */	ResetImageAttributeIterator( image );	while( (attr = GetNextImageAttribute( image )) ) {		char name_text[256];		VipsBuf name = VIPS_BUF_STATIC( name_text );		vips_buf_appendf( &name, "magick-%s", attr->key );		vips_image_set_string( im, vips_buf_all( &name ), attr->value );	}}#else{	const ImageAttribute *attr;	/* GraphicsMagick is missing the iterator: we have to loop ourselves.	 * ->attributes is marked as private in the header, but there's no	 * getter so we have to access it directly.	 */	for( attr = image->attributes; attr; attr = attr->next ) {		char name_text[256];		VipsBuf name = VIPS_BUF_STATIC( name_text );		vips_buf_appendf( &name, "magick-%s", attr->key );		vips_image_set_string( im, vips_buf_all( &name ), attr->value );	}
开发者ID:ChiaraCaiazza,项目名称:collageMaker,代码行数:67,


示例4: WritePS2Image

//.........这里部分代码省略.........    SetGeometry(image,&geometry);    (void) FormatLocaleString(page_geometry,MaxTextExtent,"%.20gx%.20g",      (double) image->columns,(double) image->rows);    if (image_info->page != (char *) NULL)      (void) CopyMagickString(page_geometry,image_info->page,MaxTextExtent);    else      if ((image->page.width != 0) && (image->page.height != 0))        (void) FormatLocaleString(page_geometry,MaxTextExtent,          "%.20gx%.20g%+.20g%+.20g",(double) image->page.width,(double)          image->page.height,(double) image->page.x,(double) image->page.y);      else        if ((image->gravity != UndefinedGravity) &&            (LocaleCompare(image_info->magick,"PS") == 0))          (void) CopyMagickString(page_geometry,PSPageGeometry,MaxTextExtent);    (void) ConcatenateMagickString(page_geometry,">",MaxTextExtent);    (void) ParseMetaGeometry(page_geometry,&geometry.x,&geometry.y,      &geometry.width,&geometry.height);    scale.x=(double) (geometry.width*delta.x)/resolution.x;    geometry.width=(size_t) floor(scale.x+0.5);    scale.y=(double) (geometry.height*delta.y)/resolution.y;    geometry.height=(size_t) floor(scale.y+0.5);    (void) ParseAbsoluteGeometry(page_geometry,&media_info);    (void) ParseGravityGeometry(image,page_geometry,&page_info,      &image->exception);    if (image->gravity != UndefinedGravity)      {        geometry.x=(-page_info.x);        geometry.y=(ssize_t) (media_info.height+page_info.y-image->rows);      }    pointsize=12.0;    if (image_info->pointsize != 0.0)      pointsize=image_info->pointsize;    text_size=0;    value=GetImageProperty(image,"label");    if (value != (const char *) NULL)      text_size=(size_t) (MultilineCensus(value)*pointsize+12);    if (page == 1)      {        /*          Output Postscript header.        */        if (LocaleCompare(image_info->magick,"PS2") == 0)          (void) CopyMagickString(buffer,"%!PS-Adobe-3.0/n",MaxTextExtent);        else          (void) CopyMagickString(buffer,"%!PS-Adobe-3.0 EPSF-3.0/n",            MaxTextExtent);        (void) WriteBlobString(image,buffer);        (void) WriteBlobString(image,"%%Creator: (ImageMagick)/n");        (void) FormatLocaleString(buffer,MaxTextExtent,"%%%%Title: (%s)/n",          image->filename);        (void) WriteBlobString(image,buffer);        timer=time((time_t *) NULL);        (void) FormatMagickTime(timer,MaxTextExtent,date);        (void) FormatLocaleString(buffer,MaxTextExtent,          "%%%%CreationDate: (%s)/n",date);        (void) WriteBlobString(image,buffer);        bounds.x1=(double) geometry.x;        bounds.y1=(double) geometry.y;        bounds.x2=(double) geometry.x+geometry.width;        bounds.y2=(double) geometry.y+geometry.height+text_size;        if ((image_info->adjoin != MagickFalse) &&            (GetNextImageInList(image) != (Image *) NULL))          (void) CopyMagickString(buffer,"%%BoundingBox: (atend)/n",            MaxTextExtent);        else          {
开发者ID:0xPr0xy,项目名称:ImageMagick,代码行数:67,


示例5: rm_get_property

/*    Function:   rm_get_property    Purpose:    Backport GetImageProperty for pre-6.3.1 versions of ImageMagick*/const char *rm_get_property(const Image *img, const char *property){    return GetImageProperty(img, property);}
开发者ID:r-project,项目名称:BS,代码行数:9,


示例6: ReadImage

//.........这里部分代码省略.........  if (GetBlobError(image) != MagickFalse)    {      ThrowFileException(exception,FileOpenError,        "AnErrorHasOccurredReadingFromFile",read_info->filename);      image=DestroyImageList(image);      read_info=DestroyImageInfo(read_info);      return((Image *) NULL);    }  for (next=image; next != (Image *) NULL; next=GetNextImageInList(next))  {    char      magick_path[MaxTextExtent],      *property,      timestamp[MaxTextExtent];    const char      *option;    const StringInfo      *profile;    next->taint=MagickFalse;    GetPathComponent(magick_filename,MagickPath,magick_path);    if (*magick_path == '/0')      (void) CopyMagickString(next->magick,magick,MaxTextExtent);    (void) CopyMagickString(next->magick_filename,magick_filename,      MaxTextExtent);    if (IsBlobTemporary(image) != MagickFalse)      (void) CopyMagickString(next->filename,filename,MaxTextExtent);    if (next->magick_columns == 0)      next->magick_columns=next->columns;    if (next->magick_rows == 0)      next->magick_rows=next->rows;    value=GetImageProperty(next,"tiff:Orientation",exception);    if (value == (char *) NULL)      value=GetImageProperty(next,"exif:Orientation",exception);    if (value != (char *) NULL)      {        next->orientation=(OrientationType) StringToLong(value);        (void) DeleteImageProperty(next,"tiff:Orientation");        (void) DeleteImageProperty(next,"exif:Orientation");      }    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)
开发者ID:ChaseReid,项目名称:ImageMagick,代码行数:67,


示例7: ReadPANGOImage

//.........这里部分代码省略.........  ssize_t    y;  unsigned char    *pixels;  /*    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,exception);  (void) ResetImagePage(image,"0x0+0+0");  /*    Format caption.  */  option=GetImageArtifact(image,"filename");  if (option == (const char *) NULL)    property=InterpretImageProperties(image_info,image,image_info->filename,      exception);  else    if (LocaleNCompare(option,"pango:",6) == 0)      property=InterpretImageProperties(image_info,image,option+6,exception);    else      property=InterpretImageProperties(image_info,image,option,exception);  (void) SetImageProperty(image,"caption",property,exception);  property=DestroyString(property);  caption=ConstantString(GetImageProperty(image,"caption",exception));  /*    Get context.  */  fontmap=pango_cairo_font_map_new();  pango_cairo_font_map_set_resolution(PANGO_CAIRO_FONT_MAP(fontmap),    image->resolution.x == 0.0 ? 90.0 : image->resolution.x);  font_options=cairo_font_options_create();  option=GetImageArtifact(image,"pango:hinting");  if (option != (const char *) NULL)    {      if (LocaleCompare(option,"none") != 0)        cairo_font_options_set_hint_style(font_options,CAIRO_HINT_STYLE_NONE);      if (LocaleCompare(option,"full") != 0)        cairo_font_options_set_hint_style(font_options,CAIRO_HINT_STYLE_FULL);    }  context=pango_font_map_create_context(fontmap);  pango_cairo_context_set_font_options(context,font_options);  cairo_font_options_destroy(font_options);  option=GetImageArtifact(image,"pango: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 NorthWestGravity:
开发者ID:epu,项目名称:ImageMagick,代码行数:67,


示例8: ReadCAPTIONImage

/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%                                                                             %%                                                                             %%                                                                             %%   R e a d C A P T I O N I m a g e                                           %%                                                                             %%                                                                             %%                                                                             %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  ReadCAPTIONImage() reads a CAPTION 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 ReadCAPTIONImage method is:%%      Image *ReadCAPTIONImage(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 *ReadCAPTIONImage(const ImageInfo *image_info,  ExceptionInfo *exception){  char    *caption,    geometry[MaxTextExtent],    *property,    *text;  const char    *gravity,    *option;  DrawInfo    *draw_info;  Image    *image;  MagickBooleanType    split,    status;  register ssize_t    i;  size_t    height,    width;  TypeMetric    metrics;  /*    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");  /*    Format caption.  */  option=GetImageOption(image_info,"filename");  if (option == (const char *) NULL)    property=InterpretImageProperties(image_info,image,image_info->filename);  else    if (LocaleNCompare(option,"caption:",8) == 0)      property=InterpretImageProperties(image_info,image,option+8);    else      property=InterpretImageProperties(image_info,image,option);  (void) SetImageProperty(image,"caption",property);  property=DestroyString(property);  caption=ConstantString(GetImageProperty(image,"caption"));  draw_info=CloneDrawInfo(image_info,(DrawInfo *) NULL);  (void) CloneString(&draw_info->text,caption);  gravity=GetImageOption(image_info,"gravity");  if (gravity != (char *) NULL)    draw_info->gravity=(GravityType) ParseCommandOption(MagickGravityOptions,      MagickFalse,gravity);  split=MagickFalse;  status=MagickTrue;  if (image->columns == 0)    {      text=AcquireString(caption);      i=FormatMagickCaption(image,draw_info,split,&metrics,&text);      (void) CloneString(&draw_info->text,text);      text=DestroyString(text);//.........这里部分代码省略.........
开发者ID:INT2208-ST,项目名称:MyFriend,代码行数:101,


示例9: WriteSGIImage

//.........这里部分代码省略.........    iris_info.dimension=3;    iris_info.columns=(unsigned short) image->columns;    iris_info.rows=(unsigned short) image->rows;    if (image->matte != MagickFalse)      iris_info.depth=4;    else      {        if ((image_info->type != TrueColorType) &&            (SetImageGray(image,&image->exception) != MagickFalse))          {            iris_info.dimension=2;            iris_info.depth=1;          }        else          iris_info.depth=3;      }    iris_info.minimum_value=0;    iris_info.maximum_value=(size_t) (image->depth <= 8 ?      1UL*ScaleQuantumToChar(QuantumRange) :      1UL*ScaleQuantumToShort(QuantumRange));    /*      Write SGI header.    */    (void) WriteBlobMSBShort(image,iris_info.magic);    (void) WriteBlobByte(image,iris_info.storage);    (void) WriteBlobByte(image,iris_info.bytes_per_pixel);    (void) WriteBlobMSBShort(image,iris_info.dimension);    (void) WriteBlobMSBShort(image,iris_info.columns);    (void) WriteBlobMSBShort(image,iris_info.rows);    (void) WriteBlobMSBShort(image,iris_info.depth);    (void) WriteBlobMSBLong(image,(unsigned int) iris_info.minimum_value);    (void) WriteBlobMSBLong(image,(unsigned int) iris_info.maximum_value);    (void) WriteBlobMSBLong(image,(unsigned int) iris_info.sans);    value=GetImageProperty(image,"label");    if (value != (const char *) NULL)      (void) CopyMagickString(iris_info.name,value,sizeof(iris_info.name));    (void) WriteBlob(image,sizeof(iris_info.name),(unsigned char *)      iris_info.name);    (void) WriteBlobMSBLong(image,(unsigned int) iris_info.pixel_format);    (void) WriteBlob(image,sizeof(iris_info.filler),iris_info.filler);    /*      Allocate SGI pixels.    */    number_pixels=(MagickSizeType) image->columns*image->rows;    if ((4*iris_info.bytes_per_pixel*number_pixels) !=        ((MagickSizeType) (size_t) (4*iris_info.bytes_per_pixel*number_pixels)))      ThrowWriterException(ResourceLimitError,"MemoryAllocationFailed");    pixel_info=AcquireVirtualMemory((size_t) number_pixels,4*      iris_info.bytes_per_pixel*sizeof(*pixels));    if (pixel_info == (MemoryInfo *) NULL)      ThrowWriterException(ResourceLimitError,"MemoryAllocationFailed");    pixels=(unsigned char *) GetVirtualMemoryBlob(pixel_info);    /*      Convert image pixels to uncompressed SGI pixels.    */    for (y=0; y < (ssize_t) image->rows; y++)    {      p=GetVirtualPixels(image,0,y,image->columns,1,&image->exception);      if (p == (const PixelPacket *) NULL)        break;      if (image->depth <= 8)        for (x=0; x < (ssize_t) image->columns; x++)        {          register unsigned char            *q;
开发者ID:acal,项目名称:alchemy,代码行数:66,


示例10: WriteHTMLImage

//.........这里部分代码省略.........  /*    Refer to image map file.  */  (void) CopyMagickString(filename,image->filename,MaxTextExtent);  AppendImageFormat("map",filename);  GetPathComponent(filename,BasePath,basename);  (void) CopyMagickString(mapname,basename,MaxTextExtent);  (void) CopyMagickString(image->filename,image_info->filename,MaxTextExtent);  (void) CopyMagickString(filename,image->filename,MaxTextExtent);  write_info=CloneImageInfo(image_info);  write_info->adjoin=MagickTrue;  status=MagickTrue;  if (LocaleCompare(image_info->magick,"SHTML") != 0)    {      const char        *value;      /*        Open output image file.      */      status=OpenBlob(image_info,image,WriteBinaryBlobMode,&image->exception);      if (status == MagickFalse)        return(status);      /*        Write the HTML image file.      */      (void) WriteBlobString(image,"<?xml version=/"1.0/" "        "encoding=/"US-ASCII/"?>/n");      (void) WriteBlobString(image,"<!DOCTYPE html PUBLIC /"-//W3C//DTD XHTML "        "1.0 Strict//EN/" "        "/"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd/">/n");      (void) WriteBlobString(image,"<html>/n");      (void) WriteBlobString(image,"<head>/n");      value=GetImageProperty(image,"label");      if (value != (const char *) NULL)        (void) FormatLocaleString(buffer,MaxTextExtent,"<title>%s</title>/n",          value);      else        {          GetPathComponent(filename,BasePath,basename);          (void) FormatLocaleString(buffer,MaxTextExtent,            "<title>%s</title>/n",basename);        }      (void) WriteBlobString(image,buffer);      (void) WriteBlobString(image,"</head>/n");      (void) WriteBlobString(image,"<body style=/"text-align: center;/">/n");      (void) FormatLocaleString(buffer,MaxTextExtent,"<h1>%s</h1>/n",        image->filename);      (void) WriteBlobString(image,buffer);      (void) WriteBlobString(image,"<div>/n");      (void) CopyMagickString(filename,image->filename,MaxTextExtent);      AppendImageFormat("png",filename);      (void) FormatLocaleString(buffer,MaxTextExtent,"<img usemap=/"#%s/" "        "src=/"%s/" style=/"border: 0;/" alt=/"Image map/" />/n",mapname,        filename);      (void) WriteBlobString(image,buffer);      /*        Determine the size and location of each image tile.      */      SetGeometry(image,&geometry);      if (image->montage != (char *) NULL)        (void) ParseAbsoluteGeometry(image->montage,&geometry);      /*        Write an image map.      */      (void) FormatLocaleString(buffer,MaxTextExtent,
开发者ID:0xPr0xy,项目名称:ImageMagick,代码行数:67,


示例11: ReadLABELImage

/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%                                                                             %%                                                                             %%                                                                             %%   R e a d L A B E L I m a g e                                               %%                                                                             %%                                                                             %%                                                                             %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  ReadLABELImage() reads a LABEL 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 ReadLABELImage method is:%%      Image *ReadLABELImage(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 *ReadLABELImage(const ImageInfo *image_info,  ExceptionInfo *exception){  char    geometry[MaxTextExtent],    *property;  const char    *label;  DrawInfo    *draw_info;  Image    *image;  MagickBooleanType    status;  TypeMetric    metrics;  size_t    height,    width;  /*    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");  property=InterpretImageProperties(image_info,image,image_info->filename);  (void) SetImageProperty(image,"label",property);  property=DestroyString(property);  label=GetImageProperty(image,"label");  draw_info=CloneDrawInfo(image_info,(DrawInfo *) NULL);  draw_info->text=ConstantString(label);  status=GetMultilineTypeMetrics(image,draw_info,&metrics);  if (image->columns == 0)    {      (void) FormatLocaleString(geometry,MaxTextExtent,"%+g%+g",        -metrics.bounds.x1,metrics.ascent);      if (draw_info->gravity == UndefinedGravity)        (void) CloneString(&draw_info->geometry,geometry);      status=GetMultilineTypeMetrics(image,draw_info,&metrics);      (void) status;      image->columns=(size_t) floor(metrics.width+draw_info->stroke_width+0.5);    }  if (image->rows == 0)    {      (void) FormatLocaleString(geometry,MaxTextExtent,"%+g%+g",        -metrics.bounds.x1,metrics.ascent);      if (draw_info->gravity == UndefinedGravity)        (void) CloneString(&draw_info->geometry,geometry);      status=GetMultilineTypeMetrics(image,draw_info,&metrics);      image->rows=(size_t) floor(metrics.height+draw_info->stroke_width+0.5);    }  if (image_info->pointsize == 0.0)    {      double        high,        low;      /*        Auto fit text into bounding box.      *///.........这里部分代码省略.........
开发者ID:0xPr0xy,项目名称:ImageMagick,代码行数:101,


示例12: WriteMPCImage

//.........这里部分代码省略.........          *name;        const StringInfo          *profile;        /*          Generic profile.        */        ResetImageProfileIterator(image);        for (name=GetNextImageProfile(image); name != (const char *) NULL; )        {          profile=GetImageProfile(image,name);          if (profile != (StringInfo *) NULL)            {              (void) FormatMagickString(buffer,MaxTextExtent,"profile:%s=%lu/n",                name,(unsigned long) GetStringInfoLength(profile));              (void) WriteBlobString(image,buffer);            }          name=GetNextImageProfile(image);        }      }    if (image->montage != (char *) NULL)      {        (void) FormatMagickString(buffer,MaxTextExtent,"montage=%s/n",          image->montage);        (void) WriteBlobString(image,buffer);      }    ResetImagePropertyIterator(image);    property=GetNextImageProperty(image);    while (property != (const char *) NULL)    {      (void) FormatMagickString(buffer,MaxTextExtent,"%s=",property);      (void) WriteBlobString(image,buffer);      value=GetImageProperty(image,property);      if (value != (const char *) NULL)        {          for (i=0; i < (long) strlen(value); i++)            if (isspace((int) ((unsigned char) value[i])) != 0)              break;          if (i <= (long) strlen(value))            (void) WriteBlobByte(image,'{');          (void) WriteBlob(image,strlen(value),(unsigned char *) value);          if (i <= (long) strlen(value))            (void) WriteBlobByte(image,'}');        }      (void) WriteBlobByte(image,'/n');      property=GetNextImageProperty(image);    }    ResetImageArtifactIterator(image);    (void) WriteBlobString(image,"/f/n:/032");    if (image->montage != (char *) NULL)      {        /*          Write montage tile directory.        */        if (image->directory != (char *) NULL)          (void) WriteBlobString(image,image->directory);        (void) WriteBlobByte(image,'/0');      }    if (image->profiles != 0)      {        const char          *name;        const StringInfo          *profile;
开发者ID:0xPr0xy,项目名称:ImageMagick,代码行数:67,


示例13: WritePS3Image

//.........这里部分代码省略.........      }    SetGeometry(image,&geometry);    (void) FormatMagickString(page_geometry,MaxTextExtent,"%lux%lu",      image->columns,image->rows);    if (image_info->page != (char *) NULL)      (void) CopyMagickString(page_geometry,image_info->page,MaxTextExtent);    else      if ((image->page.width != 0) && (image->page.height != 0))        (void) FormatMagickString(page_geometry,MaxTextExtent,"%lux%lu%+ld%+ld",          image->page.width,image->page.height,image->page.x,image->page.y);      else        if ((image->gravity != UndefinedGravity) &&            (LocaleCompare(image_info->magick,"PS") == 0))          (void) CopyMagickString(page_geometry,PSPageGeometry,MaxTextExtent);    (void) ConcatenateMagickString(page_geometry,">",MaxTextExtent);    (void) ParseMetaGeometry(page_geometry,&geometry.x,&geometry.y,      &geometry.width,&geometry.height);    scale.x=(double) (geometry.width*delta.x)/resolution.x;    geometry.width=(unsigned long) (scale.x+0.5);    scale.y=(double) (geometry.height*delta.y)/resolution.y;    geometry.height=(unsigned long) (scale.y+0.5);    (void) ParseAbsoluteGeometry(page_geometry,&media_info);    (void) ParseGravityGeometry(image,page_geometry,&page_info,      &image->exception);    if (image->gravity != UndefinedGravity)      {        geometry.x=(-page_info.x);        geometry.y=(long) (media_info.height+page_info.y-image->rows);      }    pointsize=12.0;    if (image_info->pointsize != 0.0)      pointsize=image_info->pointsize;    text_size=0;    value=GetImageProperty(image,"label");    if (value != (const char *) NULL)      text_size=(unsigned long) (MultilineCensus(value)*pointsize+12);    page++;    if (page == 1)      {        /*          Postscript header on the first page.        */        if (LocaleCompare(image_info->magick,"PS3") == 0)          (void) CopyMagickString(buffer,"%!PS-Adobe-3.0/n",MaxTextExtent);        else          (void) CopyMagickString(buffer,"%!PS-Adobe-3.0 EPSF-3.0/n",            MaxTextExtent);        (void) WriteBlobString(image,buffer);        (void) FormatMagickString(buffer,MaxTextExtent,          "%%%%Creator: ImageMagick %s/n",MagickLibVersionText);        (void) WriteBlobString(image,buffer);        (void) FormatMagickString(buffer,MaxTextExtent,"%%%%Title: %s/n",          image->filename);        (void) WriteBlobString(image,buffer);        timer=time((time_t *) NULL);        (void) FormatMagickTime(timer,MaxTextExtent,date);        (void) FormatMagickString(buffer,MaxTextExtent,          "%%%%CreationDate: %s/n",date);        (void) WriteBlobString(image,buffer);        bounds.x1=(double) geometry.x;        bounds.y1=(double) geometry.y;        bounds.x2=(double) geometry.x+scale.x;        bounds.y2=(double) geometry.y+scale.y+text_size;        if ((image_info->adjoin != MagickFalse) &&            (GetNextImageInList(image) != (Image *) NULL))          {
开发者ID:danielforest,项目名称:ImageMagick,代码行数:67,


示例14: assert

//.........这里部分代码省略.........  option=GetImageOption(image_info,"caption:wrap");  if (option != (const char *) NULL)    {      if (LocaleCompare(option,"char") == 0)        pango_layout_set_wrap(layout,PANGO_WRAP_CHAR);      if (LocaleCompare(option,"word") == 0)        pango_layout_set_wrap(layout,PANGO_WRAP_WORD);      if (LocaleCompare(option,"word-char") == 0)        pango_layout_set_wrap(layout,PANGO_WRAP_WORD_CHAR);    }  option=GetImageOption(image_info,"caption:indent");  if (option != (const char *) NULL)    pango_layout_set_indent(layout,(StringToLong(option)*image->x_resolution*      PANGO_SCALE+36)/72);  switch (draw_info->align)  {    case CenterAlign: align=PANGO_ALIGN_CENTER; break;    case RightAlign: align=PANGO_ALIGN_RIGHT; break;    case LeftAlign:    default: align=PANGO_ALIGN_LEFT; break;  }  if ((align != PANGO_ALIGN_CENTER) &&      (draw_info->direction == RightToLeftDirection))    align=(PangoAlignment) (PANGO_ALIGN_LEFT+PANGO_ALIGN_RIGHT-align);  pango_layout_set_alignment(layout,align);  description=pango_font_description_from_string(draw_info->font ==    (char *) NULL ? "helvetica" : draw_info->font);  pango_font_description_set_size(description,PANGO_SCALE*draw_info->pointsize);  pango_layout_set_font_description(layout,description);  pango_font_description_free(description);  property=InterpretImageProperties(image_info,image,image_info->filename);  (void) SetImageProperty(image,"caption",property);  property=DestroyString(property);  caption=ConstantString(GetImageProperty(image,"caption"));  /*    Render caption.  */  option=GetImageOption(image_info,"caption:markup");  if ((option != (const char *) NULL) && (IsMagickTrue(option) != MagickFalse))    pango_layout_set_markup(layout,caption,-1);  else    pango_layout_set_text(layout,caption,-1);  pango_layout_context_changed(layout);  page.x=0;  page.y=0;  if (image_info->page != (char *) NULL)    (void) ParseAbsoluteGeometry(image_info->page,&page);  if (image->columns == 0)    {      pango_layout_get_pixel_extents(layout,NULL,&extent);      image->columns=extent.x+extent.width;    }  else    {      image->columns-=2*page.x;      pango_layout_set_width(layout,(PANGO_SCALE*image->columns*        image->x_resolution+36.0)/72.0);    }  if (image->rows == 0)    {      pango_layout_get_pixel_extents(layout,NULL,&extent);      image->rows=extent.y+extent.height;    }  else    {      image->rows-=2*page.y;
开发者ID:nfma,项目名称:configuration,代码行数:67,


示例15: WriteCIPImage

/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%                                                                             %%                                                                             %%                                                                             %%   W r i t e C I P I m a g e                                                 %%                                                                             %%                                                                             %%                                                                             %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  Procedure WriteCIPImage() writes an image to a file in the Cisco IP phone%  image format.%%  The format of the WriteCIPImage method is:%%      MagickBooleanType WriteCIPImage(const ImageInfo *image_info,%        Image *image,ExceptionInfo *exception)%%  A description of each parameter follows.%%    o image_info: the image info.%%    o image:  The image.%%    o exception: return any errors or warnings in this structure.%*/static MagickBooleanType WriteCIPImage(const ImageInfo *image_info,Image *image,  ExceptionInfo *exception){  char    buffer[MagickPathExtent];  const char    *value;  MagickBooleanType    status;  register const Quantum    *p;  register ssize_t    i,    x;  ssize_t    y;  unsigned char    byte;  /*    Open output image file.  */  assert(image_info != (const ImageInfo *) NULL);  assert(image_info->signature == MagickCoreSignature);  assert(image != (Image *) NULL);  assert(image->signature == MagickCoreSignature);  if (image->debug != MagickFalse)    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);  assert(exception != (ExceptionInfo *) NULL);  assert(exception->signature == MagickCoreSignature);  status=OpenBlob(image_info,image,WriteBinaryBlobMode,exception);  if (status == MagickFalse)    return(status);  (void) WriteBlobString(image,"<CiscoIPPhoneImage>/n");  value=GetImageProperty(image,"label",exception);  if (value != (const char *) NULL)    (void) FormatLocaleString(buffer,MagickPathExtent,"<Title>%s</Title>/n",value);  else    {      char        basename[MagickPathExtent];      GetPathComponent(image->filename,BasePath,basename);      (void) FormatLocaleString(buffer,MagickPathExtent,"<Title>%s</Title>/n",        basename);    }  (void) WriteBlobString(image,buffer);  (void) FormatLocaleString(buffer,MagickPathExtent,    "<LocationX>%.20g</LocationX>/n",(double) image->page.x);  (void) WriteBlobString(image,buffer);  (void) FormatLocaleString(buffer,MagickPathExtent,    "<LocationY>%.20g</LocationY>/n",(double) image->page.y);  (void) WriteBlobString(image,buffer);  (void) FormatLocaleString(buffer,MagickPathExtent,"<Width>%.20g</Width>/n",    (double) (image->columns+(image->columns % 2)));  (void) WriteBlobString(image,buffer);  (void) FormatLocaleString(buffer,MagickPathExtent,"<Height>%.20g</Height>/n",    (double) image->rows);  (void) WriteBlobString(image,buffer);  (void) FormatLocaleString(buffer,MagickPathExtent,"<Depth>2</Depth>/n");  (void) WriteBlobString(image,buffer);  (void) WriteBlobString(image,"<Data>");  (void) TransformImageColorspace(image,sRGBColorspace,exception);  for (y=0; y < (ssize_t) image->rows; y++)  {    p=GetVirtualPixels(image,0,y,image->columns,1,exception);//.........这里部分代码省略.........
开发者ID:278443820,项目名称:ImageMagick,代码行数:101,


示例16: WriteHDRImage

static MagickBooleanType WriteHDRImage(const ImageInfo *image_info,Image *image){  char    header[MaxTextExtent];  const char    *property;  MagickBooleanType    status;  register const PixelPacket    *p;  register ssize_t    i,    x;  size_t    length;  ssize_t    count,    y;  unsigned char    pixel[4],    *pixels;  /*    Open output image file.  */  assert(image_info != (const ImageInfo *) NULL);  assert(image_info->signature == MagickSignature);  assert(image != (Image *) NULL);  assert(image->signature == MagickSignature);  if (image->debug != MagickFalse)    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);  status=OpenBlob(image_info,image,WriteBinaryBlobMode,&image->exception);  if (status == MagickFalse)    return(status);  if (IsRGBColorspace(image->colorspace) == MagickFalse)    (void) TransformImageColorspace(image,sRGBColorspace);  /*    Write header.  */  (void) ResetMagickMemory(header,' ',MaxTextExtent);  length=CopyMagickString(header,"#?RGBE/n",MaxTextExtent);  (void) WriteBlob(image,length,(unsigned char *) header);  property=GetImageProperty(image,"comment");  if ((property != (const char *) NULL) &&      (strchr(property,'/n') == (char *) NULL))    {      count=FormatLocaleString(header,MaxTextExtent,"#%s/n",property);      (void) WriteBlob(image,(size_t) count,(unsigned char *) header);    }  property=GetImageProperty(image,"hdr:exposure");  if (property != (const char *) NULL)    {      count=FormatLocaleString(header,MaxTextExtent,"EXPOSURE=%g/n",        strtod(property,(char **) NULL));      (void) WriteBlob(image,(size_t) count,(unsigned char *) header);    }  if (image->gamma != 0.0)    {      count=FormatLocaleString(header,MaxTextExtent,"GAMMA=%g/n",image->gamma);      (void) WriteBlob(image,(size_t) count,(unsigned char *) header);    }  count=FormatLocaleString(header,MaxTextExtent,    "PRIMARIES=%g %g %g %g %g %g %g %g/n",    image->chromaticity.red_primary.x,image->chromaticity.red_primary.y,    image->chromaticity.green_primary.x,image->chromaticity.green_primary.y,    image->chromaticity.blue_primary.x,image->chromaticity.blue_primary.y,    image->chromaticity.white_point.x,image->chromaticity.white_point.y);  (void) WriteBlob(image,(size_t) count,(unsigned char *) header);  length=CopyMagickString(header,"FORMAT=32-bit_rle_rgbe/n/n",MaxTextExtent);  (void) WriteBlob(image,length,(unsigned char *) header);  count=FormatLocaleString(header,MaxTextExtent,"-Y %.20g +X %.20g/n",    (double) image->rows,(double) image->columns);  (void) WriteBlob(image,(size_t) count,(unsigned char *) header);  /*    Write HDR pixels.  */  pixels=(unsigned char *) AcquireQuantumMemory(image->columns+128,4*    sizeof(*pixels));  if (pixels == (unsigned char *) NULL)    ThrowWriterException(ResourceLimitError,"MemoryAllocationFailed");  (void) ResetMagickMemory(pixels,0,4*(image->columns+128)*sizeof(*pixels));  for (y=0; y < (ssize_t) image->rows; y++)  {    p=GetVirtualPixels(image,0,y,image->columns,1,&image->exception);    if (p == (const PixelPacket *) NULL)      break;    if ((image->columns >= 8) && (image->columns <= 0x7ffff))      {        pixel[0]=2;        pixel[1]=2;        pixel[2]=(unsigned char) (image->columns >> 8);        pixel[3]=(unsigned char) (image->columns & 0xff);        count=WriteBlob(image,4*sizeof(*pixel),pixel);//.........这里部分代码省略.........
开发者ID:INT2208-ST,项目名称:MyFriend,代码行数:101,


示例17: WriteVIPSImage

//.........这里部分代码省略.........  else    (void) WriteBlobLSBLong(image,VIPS_MAGIC_MSB);  (void) WriteBlobLong(image,(unsigned int) image->columns);  (void) WriteBlobLong(image,(unsigned int) image->rows);  (void) SetImageStorageClass(image,DirectClass);  channels=image->matte ? 4 : 3;  if (SetImageGray(image,&image->exception) != MagickFalse)    channels=image->matte ? 2 : 1;  else if (image->colorspace == CMYKColorspace)    channels=image->matte ? 5 : 4;  (void) WriteBlobLong(image,channels);  (void) WriteBlobLong(image,0);  if (image->depth == 16)    (void) WriteBlobLong(image,(unsigned int) VIPSBandFormatUSHORT);  else    {      image->depth=8;      (void) WriteBlobLong(image,(unsigned int) VIPSBandFormatUCHAR);    }  (void) WriteBlobLong(image,VIPSCodingNONE);  switch(image->colorspace)  {    case CMYKColorspace:      (void) WriteBlobLong(image,VIPSTypeCMYK);      break;    case GRAYColorspace:      if (image->depth == 16)        (void) WriteBlobLong(image, VIPSTypeGREY16);      else        (void) WriteBlobLong(image, VIPSTypeB_W);      break;    case RGBColorspace:      if (image->depth == 16)        (void) WriteBlobLong(image, VIPSTypeRGB16);      else        (void) WriteBlobLong(image, VIPSTypeRGB);      break;    default:    case sRGBColorspace:      (void) SetImageColorspace(image,sRGBColorspace);      (void) WriteBlobLong(image,VIPSTypesRGB);      break;  }  if (image->units == PixelsPerCentimeterResolution)    {      (void) WriteBlobFloat(image,(image->x_resolution / 10));      (void) WriteBlobFloat(image,(image->y_resolution / 10));    }  else if (image->units == PixelsPerInchResolution)    {      (void) WriteBlobFloat(image,(image->x_resolution / 25.4));      (void) WriteBlobFloat(image,(image->y_resolution / 25.4));    }  else    {      (void) WriteBlobLong(image,0);      (void) WriteBlobLong(image,0);    }  /*    Legacy, Offsets, Future  */  for (y=0; y < 24; y++)    (void) WriteBlobByte(image,0);  for (y=0; y < (ssize_t) image->rows; y++)  {    p=GetVirtualPixels(image,0,y,image->columns,1,&image->exception);    if (p == (const PixelPacket *) NULL)      break;    indexes=GetVirtualIndexQueue(image);    for (x=0; x < (ssize_t) image->columns; x++)    {      WriteVIPSPixel(image,GetPixelRed(p));      if (channels == 2)        WriteVIPSPixel(image,GetPixelAlpha(p));      else        {          WriteVIPSPixel(image,GetPixelGreen(p));          WriteVIPSPixel(image,GetPixelBlue(p));          if (channels >= 4)            {              if (image->colorspace == CMYKColorspace)                WriteVIPSPixel(image,GetPixelIndex(indexes+x));              else                WriteVIPSPixel(image,GetPixelAlpha(p));            }          else if (channels == 5)            {               WriteVIPSPixel(image,GetPixelIndex(indexes+x));               WriteVIPSPixel(image,GetPixelAlpha(p));            }        }      p++;    }  }  metadata=GetImageProperty(image,"vips:metadata");  if (metadata != (const char*) NULL)    WriteBlobString(image,metadata);  (void) CloseBlob(image);  return(status);}
开发者ID:JohnHeywardOBrien,项目名称:photogram,代码行数:101,


示例18: ReadCAPTIONImage

/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%                                                                             %%                                                                             %%                                                                             %%   R e a d C A P T I O N I m a g e                                           %%                                                                             %%                                                                             %%                                                                             %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  ReadCAPTIONImage() reads a CAPTION 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 ReadCAPTIONImage method is:%%      Image *ReadCAPTIONImage(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 *ReadCAPTIONImage(const ImageInfo *image_info,  ExceptionInfo *exception){  char    *caption,    geometry[MaxTextExtent],    *property;  const char    *gravity;  DrawInfo    *draw_info;  Image    *image;  MagickBooleanType    status;  register long    i;  TypeMetric    metrics;  unsigned long    height,    width;  /*    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);  if (image->columns == 0)    ThrowReaderException(OptionError,"MustSpecifyImageSize");  (void) ResetImagePage(image,"0x0+0+0");  /*    Format caption.  */  property=InterpretImageProperties(image_info,image,image_info->filename);  (void) SetImageProperty(image,"caption",property);  property=DestroyString(property);  caption=ConstantString(GetImageProperty(image,"caption"));  draw_info=CloneDrawInfo(image_info,(DrawInfo *) NULL);  draw_info->text=ConstantString(caption);  gravity=GetImageOption(image_info,"gravity");  if (gravity != (char *) NULL)    draw_info->gravity=(GravityType) ParseMagickOption(MagickGravityOptions,      MagickFalse,gravity);  if ((*caption != '/0') && (image->rows != 0) &&      (image_info->pointsize == 0.0))    {      char        *text;      /*        Scale text to fit bounding box.      */      for ( ; ; )      {        text=AcquireString(caption);        i=FormatMagickCaption(image,draw_info,&metrics,&text);        (void) CloneString(&draw_info->text,text);        text=DestroyString(text);        (void) FormatMagickString(geometry,MaxTextExtent,"%+g%+g",//.........这里部分代码省略.........
开发者ID:0xPr0xy,项目名称:ImageMagick,代码行数:101,


示例19: ReadLABELImage

/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%                                                                             %%                                                                             %%                                                                             %%   R e a d L A B E L I m a g e                                               %%                                                                             %%                                                                             %%                                                                             %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  ReadLABELImage() reads a LABEL 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 ReadLABELImage method is:%%      Image *ReadLABELImage(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 *ReadLABELImage(const ImageInfo *image_info,  ExceptionInfo *exception){  char    geometry[MagickPathExtent],    *property;  const char    *label;  DrawInfo    *draw_info;  Image    *image;  MagickBooleanType    status;  TypeMetric    metrics;  size_t    height,    width;  /*    Initialize Image structure.  */  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);  image=AcquireImage(image_info,exception);  (void) ResetImagePage(image,"0x0+0+0");  property=InterpretImageProperties((ImageInfo *) image_info,image,    image_info->filename,exception);  (void) SetImageProperty(image,"label",property,exception);  property=DestroyString(property);  label=GetImageProperty(image,"label",exception);  draw_info=CloneDrawInfo(image_info,(DrawInfo *) NULL);  draw_info->text=ConstantString(label);  metrics.width=0;  metrics.ascent=0.0;  status=GetMultilineTypeMetrics(image,draw_info,&metrics,exception);  if ((image->columns == 0) && (image->rows == 0))    {      image->columns=(size_t) (metrics.width+draw_info->stroke_width+0.5);      image->rows=(size_t) floor(metrics.height+draw_info->stroke_width+0.5);    }  else    if (((image->columns == 0) || (image->rows == 0)) ||        (fabs(image_info->pointsize) < MagickEpsilon))      {        double          high,          low;        /*          Auto fit text into bounding box.        */        for ( ; ; draw_info->pointsize*=2.0)        {          (void) FormatLocaleString(geometry,MagickPathExtent,"%+g%+g",            -metrics.bounds.x1,metrics.ascent);          if (draw_info->gravity == UndefinedGravity)            (void) CloneString(&draw_info->geometry,geometry);          status=GetMultilineTypeMetrics(image,draw_info,&metrics,exception);          width=(size_t) floor(metrics.width+draw_info->stroke_width+0.5);          height=(size_t) floor(metrics.height+draw_info->stroke_width+0.5);//.........这里部分代码省略.........
开发者ID:DINKIN,项目名称:ImageMagick,代码行数:101,


示例20: old

/*    Function:   rm_exif_by_entry    Purpose:    replicate old (< 6.3.2) EXIF:* functionality using GetImageProperty                by returning the exif entries as a single string, separated by /n's.                Do this so that RMagick.rb works no matter which version of                ImageMagick is in use.    Notes:      see magick/identify.c*/VALUErm_exif_by_entry(Image *image){    const char *property, *value;    char *str;    size_t len = 0, property_l, value_l;    volatile VALUE v;    (void) GetImageProperty(image, "exif:*");    ResetImagePropertyIterator(image);    property = GetNextImageProperty(image);    // Measure the exif properties and values    while (property)    {        // ignore properties that don't start with "exif:"        property_l = strlen(property);        if (property_l > 5 && rm_strncasecmp(property, "exif:", 5) == 0)        {            if (len > 0)            {                len += 1;   // there will be a /n between property=value entries            }            len += property_l - 5;            value = GetImageProperty(image,property);            if (value)            {                // add 1 for the = between property and value                len += 1 + strlen(value);            }        }        property = GetNextImageProperty(image);    }    if (len == 0)    {        return Qnil;    }    str = xmalloc(len);    len = 0;    // Copy the exif properties and values into the string.    ResetImagePropertyIterator(image);    property = GetNextImageProperty(image);    while (property)    {        property_l = strlen(property);        if (property_l > 5 && rm_strncasecmp(property, "exif:", 5) == 0)        {            if (len > 0)            {                str[len++] = '/n';            }            memcpy(str+len, property+5, property_l-5);            len += property_l - 5;            value = GetImageProperty(image,property);            if (value)            {                value_l = strlen(value);                str[len++] = '=';                memcpy(str+len, value, value_l);                len += value_l;            }        }        property = GetNextImageProperty(image);    }    v = rb_str_new(str, len);    xfree(str);    return v;}
开发者ID:r-project,项目名称:BS,代码行数:80,


示例21: assert

//.........这里部分代码省略.........  */  clone_info=CloneImageInfo(image_info);  clone_info->background_color=montage_info->background_color;  clone_info->border_color=montage_info->border_color;  draw_info=CloneDrawInfo(clone_info,(DrawInfo *) NULL);  if (montage_info->font != (char *) NULL)    (void) CloneString(&draw_info->font,montage_info->font);  if (montage_info->pointsize != 0.0)    draw_info->pointsize=montage_info->pointsize;  draw_info->gravity=CenterGravity;  draw_info->stroke=montage_info->stroke;  draw_info->fill=montage_info->fill;  draw_info->text=AcquireString("");  (void) GetTypeMetrics(image_list[0],draw_info,&metrics,exception);  texture=NewImageList();  if (montage_info->texture != (char *) NULL)    {      (void) CopyMagickString(clone_info->filename,montage_info->texture,        MagickPathExtent);      texture=ReadImage(clone_info,exception);    }  /*    Determine the number of lines in an next label.  */  title=InterpretImageProperties(clone_info,image_list[0],montage_info->title,    exception);  title_offset=0;  if (montage_info->title != (char *) NULL)    title_offset=(size_t) (2*(metrics.ascent-metrics.descent)*      MultilineCensus(title)+2*extract_info.y);  number_lines=0;  for (i=0; i < (ssize_t) number_images; i++)  {    value=GetImageProperty(image_list[i],"label",exception);    if (value == (const char *) NULL)      continue;    if (MultilineCensus(value) > number_lines)      number_lines=MultilineCensus(value);  }  /*    Allocate next structure.  */  tile_image=AcquireImage((ImageInfo *) NULL,exception);  montage=AcquireImage(clone_info,exception);  montage->background_color=montage_info->background_color;  montage->scene=0;  images_per_page=(number_images-1)/(tiles_per_row*tiles_per_column)+1;  tiles=0;  total_tiles=(size_t) number_images;  for (i=0; i < (ssize_t) images_per_page; i++)  {    /*      Determine bounding box.    */    tiles_per_page=tiles_per_row*tiles_per_column;    x_offset=0;    y_offset=0;    if (montage_info->tile != (char *) NULL)      GetMontageGeometry(montage_info->tile,number_images,&x_offset,&y_offset,        &sans,&sans);    tiles_per_page=tiles_per_row*tiles_per_column;    y_offset+=(ssize_t) title_offset;    max_height=0;    bounds.width=0;    bounds.height=0;    width=0;
开发者ID:vcgato29,项目名称:ImageMagick,代码行数:67,


示例22: ReadCAPTIONImage

/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%                                                                             %%                                                                             %%                                                                             %%   R e a d C A P T I O N I m a g e                                           %%                                                                             %%                                                                             %%                                                                             %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  ReadCAPTIONImage() reads a CAPTION 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 ReadCAPTIONImage method is:%%      Image *ReadCAPTIONImage(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 *ReadCAPTIONImage(const ImageInfo *image_info,  ExceptionInfo *exception){  char    *caption,    geometry[MaxTextExtent],    *property;  const char    *gravity,    *option;  DrawInfo    *draw_info;  Image    *image;  MagickBooleanType    status;  register ssize_t    i;  size_t    height,    width;  TypeMetric    metrics;  /*    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,exception);  if (image->columns == 0)    ThrowReaderException(OptionError,"MustSpecifyImageSize");  (void) ResetImagePage(image,"0x0+0+0");  /*    Format caption.  */  option=GetImageOption(image_info,"filename");  if (option == (const char *) NULL)    property=InterpretImageProperties(image_info,image,image_info->filename,      exception);  else    if (LocaleNCompare(option,"caption:",8) == 0)      property=InterpretImageProperties(image_info,image,option+8,exception);    else      property=InterpretImageProperties(image_info,image,option,exception);  (void) SetImageProperty(image,"caption",property,exception);  property=DestroyString(property);  caption=ConstantString(GetImageProperty(image,"caption",exception));  draw_info=CloneDrawInfo(image_info,(DrawInfo *) NULL);  (void) CloneString(&draw_info->text,caption);  gravity=GetImageOption(image_info,"gravity");  if (gravity != (char *) NULL)    draw_info->gravity=(GravityType) ParseCommandOption(MagickGravityOptions,      MagickFalse,gravity);  if ((*caption != '/0') && (image->rows != 0) &&      (image_info->pointsize == 0.0))    {      char        *text;      double//.........这里部分代码省略.........
开发者ID:zyqhi,项目名称:ImageMagick,代码行数:101,


示例23: ReadLABELImage

/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%                                                                             %%                                                                             %%                                                                             %%   R e a d L A B E L I m a g e                                               %%                                                                             %%                                                                             %%                                                                             %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  ReadLABELImage() reads a LABEL 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 ReadLABELImage method is:%%      Image *ReadLABELImage(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 *ReadLABELImage(const ImageInfo *image_info,  ExceptionInfo *exception){  char    geometry[MaxTextExtent],    *property;  const char    *label;  DrawInfo    *draw_info;  Image    *image;  MagickBooleanType    status;  TypeMetric    metrics;  size_t    height,    width;  /*    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");  property=InterpretImageProperties(image_info,image,image_info->filename);  (void) SetImageProperty(image,"label",property);  property=DestroyString(property);  label=GetImageProperty(image,"label");  draw_info=CloneDrawInfo(image_info,(DrawInfo *) NULL);  draw_info->text=ConstantString(label);  if (((image->columns != 0) || (image->rows != 0)) &&      (image_info->pointsize == 0.0))    {      /*        Fit label to canvas size.      */      status=GetMultilineTypeMetrics(image,draw_info,&metrics);      for ( ; status != MagickFalse; draw_info->pointsize*=2.0)      {        width=(size_t) floor(metrics.width+draw_info->stroke_width+0.5);        height=(size_t) floor(metrics.height+draw_info->stroke_width+0.5);        if (((image->columns != 0) && (width > (image->columns+1))) ||            ((image->rows != 0) && (height > (image->rows+1))))          break;        status=GetMultilineTypeMetrics(image,draw_info,&metrics);      }      for ( ; status != MagickFalse; draw_info->pointsize--)      {        width=(size_t) floor(metrics.width+draw_info->stroke_width+0.5);        height=(size_t) floor(metrics.height+draw_info->stroke_width+0.5);        if ((image->columns != 0) && (width <= (image->columns+1)) &&           ((image->rows == 0) || (height <= (image->rows+1))))          break;        if ((image->rows != 0) && (height <= (image->rows+1)) &&           ((image->columns == 0) || (width <= (image->columns+1))))          break;        if (draw_info->pointsize < 2.0)          break;        status=GetMultilineTypeMetrics(image,draw_info,&metrics);//.........这里部分代码省略.........
开发者ID:0xPr0xy,项目名称:ImageMagick,代码行数:101,


示例24: WriteIPLImage

static MagickBooleanType WriteIPLImage(const ImageInfo *image_info,Image *image){  MagickBooleanType    status;    MagickOffsetType    scene;    register const PixelPacket    *p;  unsigned char  *pixels;   long    y;    IPLInfo    ipl_info;   QuantumInfo    *quantum_info;     const char  *qType;   quantum_info = AcquireQuantumInfo(image_info);   /*    Open output image file.  */  assert(image_info != (const ImageInfo *) NULL);  assert(image_info->signature == MagickSignature);  assert(image != (Image *) NULL);  assert(image->signature == MagickSignature);  if (image->debug != MagickFalse)    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);  status=OpenBlob(image_info,image,WriteBinaryBlobMode,&image->exception);  if (status == MagickFalse)    return(status);  scene=0;    GetQuantumInfo(image_info, quantum_info);  qType = GetImageProperty(image, "quantum:format");   switch(image->depth){  case 8:     ipl_info.byteType = 0;    break;  case 16:    if(LocaleCompare(qType, "SignedQuantumFormat"))      ipl_info.byteType = 2;    else      ipl_info.byteType = 1;    break;  case 32:    if(LocaleCompare(qType, "FloatingPointQuantumFormat"))      ipl_info.byteType = 3;    else      ipl_info.byteType = 4;    break;  case 64:      ipl_info.byteType = 10;    break;  default: ipl_info.byteType = 2; break;      }    ipl_info.z = GetImageListLength(image);  /* There is no current method for detecting whether we have T or Z stacks */  ipl_info.time = 1;  ipl_info.width = image->columns;  ipl_info.height = image->rows;    if (image->colorspace == UndefinedColorspace)    (void) SetImageColorspace(image,RGBColorspace);    if(image->colorspace == RGBColorspace) { ipl_info.colors = 3; }  else{ ipl_info.colors = 1; }    ipl_info.size = 28 +     ((image->depth)/8)*ipl_info.height*ipl_info.width*ipl_info.colors*ipl_info.z;    /* Ok!  Calculations are done.  Lets write this puppy down! */    /*    Write IPL header.  */  if(image_info->endian == LSBEndian)    (void) WriteBlob(image, 4, (unsigned char *) "iiii");  else    (void) WriteBlob(image, 4, (unsigned char *) "mmmm");  (void) WriteBlobLong(image, 4);  (void) WriteBlob(image, 4, (unsigned char *) "100f");  (void) WriteBlob(image, 4, (unsigned char *) "data");  (void) WriteBlobLong(image, ipl_info.size);  (void) WriteBlobLong(image, ipl_info.width);   (void) WriteBlobLong(image, ipl_info.height);  (void) WriteBlobLong(image, ipl_info.colors);  (void) WriteBlobLong(image, ipl_info.z);  (void) WriteBlobLong(image, ipl_info.time);  (void) WriteBlobLong(image, ipl_info.byteType);  //.........这里部分代码省略.........
开发者ID:vazexqi,项目名称:ParsecPipelineParallelism,代码行数:101,



注:本文中的GetImageProperty函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ GetImplementation函数代码示例
C++ GetImageOption函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。