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

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

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

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

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

示例1: ReadHDRImage

//.........这里部分代码省略.........          *p='/0';          value_expected=MagickFalse;          while ((isspace((int) ((unsigned char) c)) != 0) || (c == '='))          {            if (c == '=')              value_expected=MagickTrue;            c=ReadBlobByte(image);          }          if (LocaleCompare(keyword,"Y") == 0)            value_expected=MagickTrue;          if (value_expected == MagickFalse)            continue;          p=value;          while ((c != '/n') && (c != '/0'))          {            if ((size_t) (p-value) < (MaxTextExtent-1))              *p++=c;            c=ReadBlobByte(image);          }          *p='/0';          /*            Assign a value to the specified keyword.          */          switch (*keyword)          {            case 'F':            case 'f':            {              if (LocaleCompare(keyword,"format") == 0)                {                  (void) CopyMagickString(format,value,MaxTextExtent);                  break;                }              (void) FormatLocaleString(tag,MaxTextExtent,"hdr:%s",keyword);              (void) SetImageProperty(image,tag,value,exception);              break;            }            case 'G':            case 'g':            {              if (LocaleCompare(keyword,"gamma") == 0)                {                  image->gamma=StringToDouble(value,(char **) NULL);                  break;                }              (void) FormatLocaleString(tag,MaxTextExtent,"hdr:%s",keyword);              (void) SetImageProperty(image,tag,value,exception);              break;            }            case 'P':            case 'p':            {              if (LocaleCompare(keyword,"primaries") == 0)                {                  float                    chromaticity[6],                    white_point[2];                  (void) sscanf(value,"%g %g %g %g %g %g %g %g",                    &chromaticity[0],&chromaticity[1],&chromaticity[2],                    &chromaticity[3],&chromaticity[4],&chromaticity[5],                    &white_point[0],&white_point[1]);                  image->chromaticity.red_primary.x=chromaticity[0];                  image->chromaticity.red_primary.y=chromaticity[1];                  image->chromaticity.green_primary.x=chromaticity[2];                  image->chromaticity.green_primary.y=chromaticity[3];
开发者ID:ChaseReid,项目名称:ImageMagick,代码行数:67,


示例2: ReadCALSImage

//.........这里部分代码省略.........    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);    status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception);    if (status == MagickFalse)    {        image=DestroyImageList(image);        return((Image *) NULL);    }    /*      Read CALS header.    */    (void) ResetMagickMemory(header,0,sizeof(header));    density=0;    direction=0;    orientation=1;    pel_path=0;    type=1;    width=0;    height=0;    for (i=0; i < 16; i++)    {        if (ReadBlob(image,128,(unsigned char *) header) != 128)            break;        switch (*header)        {        case 'R':        case 'r':        {            if (LocaleNCompare(header,"rdensty:",8) == 0)            {                (void) sscanf(header+8,"%lu",&density);                break;            }            if (LocaleNCompare(header,"rpelcnt:",8) == 0)            {                (void) sscanf(header+8,"%lu,%lu",&width,&height);                break;            }            if (LocaleNCompare(header,"rorient:",8) == 0)            {                (void) sscanf(header+8,"%lu,%lu",&pel_path,&direction);                if (pel_path == 90)                    orientation=5;                else if (pel_path == 180)                    orientation=3;                else if (pel_path == 270)                    orientation=7;                if (direction == 90)                    orientation++;                break;            }            if (LocaleNCompare(header,"rtype:",6) == 0)            {                (void) sscanf(header+6,"%lu",&type);                break;            }            break;        }        }    }    /*      Read CALS pixels.    */    file=(FILE *) NULL;    unique_file=AcquireUniqueFileResource(filename);    if (unique_file != -1)        file=fdopen(unique_file,"wb");    if ((unique_file == -1) || (file == (FILE *) NULL))        ThrowImageException(FileOpenError,"UnableToCreateTemporaryFile");    while ((c=ReadBlobByte(image)) != EOF)        (void) fputc(c,file);    (void) fclose(file);    (void) CloseBlob(image);    image=DestroyImage(image);    read_info=CloneImageInfo(image_info);    SetImageInfoBlob(read_info,(void *) NULL,0);    (void) FormatLocaleString(read_info->filename,MaxTextExtent,"group4:%s",                              filename);    (void) FormatLocaleString(message,MaxTextExtent,"%lux%lu",width,height);    read_info->size=ConstantString(message);    (void) FormatLocaleString(message,MaxTextExtent,"%lu",density);    read_info->density=ConstantString(message);    read_info->orientation=(OrientationType) orientation;    image=ReadImage(read_info,exception);    if (image != (Image *) NULL)    {        (void) CopyMagickString(image->filename,image_info->filename,                                MaxTextExtent);        (void) CopyMagickString(image->magick_filename,image_info->filename,                                MaxTextExtent);        (void) CopyMagickString(image->magick,"CALS",MaxTextExtent);    }    read_info=DestroyImageInfo(read_info);    (void) RelinquishUniqueFileResource(filename);    return(image);}
开发者ID:densonclan,项目名称:poptees.shoppe,代码行数:101,


示例3: ReadPWPImage

//.........这里部分代码省略.........      image_info->filename);  assert(exception != (ExceptionInfo *) NULL);  assert(exception->signature == MagickSignature);  pwp_image=AcquireImage(image_info);  image=pwp_image;  status=OpenBlob(image_info,pwp_image,ReadBinaryBlobMode,exception);  if (status == MagickFalse)    return((Image *) NULL);  count=ReadBlob(pwp_image,5,magick);  if ((count != 5) || (LocaleNCompare((char *) magick,"SFW95",5) != 0))    ThrowReaderException(CorruptImageError,"ImproperImageHeader");  read_info=CloneImageInfo(image_info);  (void) SetImageInfoProgressMonitor(read_info,(MagickProgressMonitor) NULL,    (void *) NULL);  SetImageInfoBlob(read_info,(void *) NULL,0);  unique_file=AcquireUniqueFileResource(read_info->filename);  for ( ; ; )  {    for (c=ReadBlobByte(pwp_image); c != EOF; c=ReadBlobByte(pwp_image))    {      for (i=0; i < 17; i++)        magick[i]=magick[i+1];      magick[17]=(unsigned char) c;      if (LocaleNCompare((char *) (magick+12),"SFW94A",6) == 0)        break;    }    if (c == EOF)      break;    if (LocaleNCompare((char *) (magick+12),"SFW94A",6) != 0)      {        (void) RelinquishUniqueFileResource(read_info->filename);        ThrowReaderException(CorruptImageError,"ImproperImageHeader");      }    /*      Dump SFW image to a temporary file.    */    file=(FILE *) NULL;    if (unique_file != -1)      file=fdopen(unique_file,"wb");    if ((unique_file == -1) || (file == (FILE *) NULL))      {        (void) RelinquishUniqueFileResource(read_info->filename);        ThrowFileException(exception,FileOpenError,"UnableToWriteFile",          image->filename);        image=DestroyImageList(image);        return((Image *) NULL);      }    length=fwrite("SFW94A",1,6,file);    (void) length;    filesize=65535UL*magick[2]+256L*magick[1]+magick[0];    for (i=0; i < (ssize_t) filesize; i++)    {      c=ReadBlobByte(pwp_image);      (void) fputc(c,file);    }    (void) fclose(file);    next_image=ReadImage(read_info,exception);    if (next_image == (Image *) NULL)      break;    (void) FormatLocaleString(next_image->filename,MaxTextExtent,      "slide_%02ld.sfw",(long) next_image->scene);    if (image == (Image *) NULL)      image=next_image;    else      {        /*          Link image into image list.        */        for (p=image; p->next != (Image *) NULL; p=GetNextImageInList(p)) ;        next_image->previous=p;        next_image->scene=p->scene+1;        p->next=next_image;      }    if (image_info->number_scenes != 0)      if (next_image->scene >= (image_info->scene+image_info->number_scenes-1))        break;    status=SetImageProgress(image,LoadImagesTag,TellBlob(pwp_image),      GetBlobSize(pwp_image));    if (status == MagickFalse)      break;  }  if (unique_file != -1)    (void) close(unique_file);  (void) RelinquishUniqueFileResource(read_info->filename);  read_info=DestroyImageInfo(read_info);  (void) CloseBlob(pwp_image);  pwp_image=DestroyImage(pwp_image);  if (EOFBlob(image) != MagickFalse)    {      char        *message;      message=GetExceptionMessage(errno);      (void) ThrowMagickException(exception,GetMagickModule(),CorruptImageError,        "UnexpectedEndOfFile","`%s': %s",image->filename,message);      message=DestroyString(message);    }  (void) CloseBlob(image);  return(GetFirstImageInList(image));}
开发者ID:CamiloBenavides,项目名称:SnoutPoint-Web,代码行数:101,


示例4: ReadXPSImage

//.........这里部分代码省略.........            &bounds.x1,&bounds.y1,&bounds.x2,&bounds.y2);      }    if (LocaleNCompare(MediaBox,command,strlen(MediaBox)) == 0)      {        /*          Note region defined by media box.        */        count=(ssize_t) sscanf(command,"MediaBox [%lf %lf %lf %lf",          &bounds.x1,&bounds.y1,&bounds.x2,&bounds.y2);        if (count != 4)          count=(ssize_t) sscanf(command,"MediaBox[%lf %lf %lf %lf",            &bounds.x1,&bounds.y1,&bounds.x2,&bounds.y2);      }    if (count != 4)      continue;    /*      Set XPS render geometry.    */    width=(size_t) (floor(bounds.x2+0.5)-ceil(bounds.x1-0.5));    height=(size_t) (floor(bounds.y2+0.5)-ceil(bounds.y1-0.5));    if (width > page.width)      page.width=width;    if (height > page.height)      page.height=height;  }  (void) CloseBlob(image);  /*    Render XPS with the GhostXPS 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,MagickPathExtent,"%.20gx%.20g",(double)    page.width,(double) page.height);  if (image_info->monochrome != MagickFalse)    delegate_info=GetDelegateInfo("xps:mono",(char *) NULL,exception);  else     if (cmyk != MagickFalse)       delegate_info=GetDelegateInfo("xps:cmyk",(char *) NULL,exception);     else       delegate_info=GetDelegateInfo("xps:color",(char *) NULL,exception);  if (delegate_info == (const DelegateInfo *) NULL)    return((Image *) NULL);  density=AcquireString("");  options=AcquireString("");  (void) FormatLocaleString(density,MagickPathExtent,"%gx%g",    image->resolution.x,image->resolution.y);  if ((page.width == 0) || (page.height == 0))    (void) ParseAbsoluteGeometry(PSPageGeometry,&page);  if (image_info->page != (char *) NULL)    (void) ParseAbsoluteGeometry(image_info->page,&page);  page.width=(size_t) floor(page.width*image->resolution.y/delta.x+0.5);  page.height=(size_t) floor(page.height*image->resolution.y/delta.y+0.5);  (void) FormatLocaleString(options,MagickPathExtent,"-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,MagickPathExtent,"-dLastPage=%.20g",          (double) (read_info->scene+read_info->number_scenes));      else        (void) FormatLocaleString(options,MagickPathExtent,
开发者ID:vcgato29,项目名称:ImageMagick,代码行数:67,


示例5: WriteXPMImage

//.........这里部分代码省略.........                if (opacity < 0)                  {                    opacity=i;                    continue;                  }                alpha=(Quantum) TransparentOpacity-(MagickRealType)                  image->colormap[i].opacity;                beta=(Quantum) TransparentOpacity-(MagickRealType)                  image->colormap[opacity].opacity;                if (alpha < beta)                  opacity=i;              }        }      if (opacity >= 0)        {          image->colormap[opacity].red=image->transparent_color.red;          image->colormap[opacity].green=image->transparent_color.green;          image->colormap[opacity].blue=image->transparent_color.blue;        }    }  /*    Compute the character per pixel.  */  characters_per_pixel=1;  for (k=MaxCixels; (ssize_t) image->colors > k; k*=MaxCixels)    characters_per_pixel++;  /*    XPM header.  */  (void) WriteBlobString(image,"/* XPM *//n");  GetPathComponent(image->filename,BasePath,basename);  if (isalnum((int) ((unsigned char) *basename)) == 0)    {      (void) FormatLocaleString(buffer,MaxTextExtent,"xpm_%s",basename);      (void) CopyMagickString(basename,buffer,MaxTextExtent);    }  if (isalpha((int) ((unsigned char) basename[0])) == 0)    basename[0]='_';  for (i=1; basename[i] != '/0'; i++)    if (isalnum((int) ((unsigned char) basename[i])) == 0)      basename[i]='_';  (void) FormatLocaleString(buffer,MaxTextExtent,    "static char *%s[] = {/n",basename);  (void) WriteBlobString(image,buffer);  (void) WriteBlobString(image,"/* columns rows colors chars-per-pixel *//n");  (void) FormatLocaleString(buffer,MaxTextExtent,    "/"%.20g %.20g %.20g %.20g /",/n",(double) image->columns,(double)    image->rows,(double) image->colors,(double) characters_per_pixel);  (void) WriteBlobString(image,buffer);  GetMagickPixelPacket(image,&pixel);  for (i=0; i < (ssize_t) image->colors; i++)  {    /*      Define XPM color.    */    SetMagickPixelPacket(image,image->colormap+i,(IndexPacket *) NULL,&pixel);    pixel.colorspace=sRGBColorspace;    pixel.depth=8;    pixel.opacity=(MagickRealType) OpaqueOpacity;    (void) QueryMagickColorname(image,&pixel,XPMCompliance,name,      &image->exception);    if (i == opacity)      (void) CopyMagickString(name,"None",MaxTextExtent);    /*      Write XPM color.    */
开发者ID:jakekiser,项目名称:Nodotype,代码行数:67,


示例6: ReadDNGImage

/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%                                                                             %%                                                                             %%                                                                             %%   R e a d D N G I m a g e                                                   %%                                                                             %%                                                                             %%                                                                             %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  ReadDNGImage() reads an binary file in the Digital Negative format 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 ReadDNGImage method is:%%      Image *ReadDNGImage(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 *ReadDNGImage(const ImageInfo *image_info,ExceptionInfo *exception){  ExceptionInfo    *sans_exception;  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=AcquireImage(image_info);  status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception);  if (status == MagickFalse)    {      image=DestroyImageList(image);      return((Image *) NULL);    }  (void) CloseBlob(image);  (void) DestroyImageList(image);  /*    Convert DNG to PPM with delegate.  */  image=AcquireImage(image_info);  read_info=CloneImageInfo(image_info);  SetImageInfoBlob(read_info,(void *) NULL,0);  (void) InvokeDelegate(read_info,image,"dng:decode",(char *) NULL,exception);  image=DestroyImage(image);  (void) FormatLocaleString(read_info->filename,MaxTextExtent,"%s.png",    read_info->unique);  sans_exception=AcquireExceptionInfo();  image=ReadImage(read_info,sans_exception);  sans_exception=DestroyExceptionInfo(sans_exception);  if (image == (Image *) NULL)    {      (void) FormatLocaleString(read_info->filename,MaxTextExtent,"%s.ppm",        read_info->unique);      image=ReadImage(read_info,exception);    }  (void) RelinquishUniqueFileResource(read_info->filename);  if (image != (Image *) NULL)    {      char        filename[MaxTextExtent],        *xml;      ExceptionInfo        *sans;      (void) CopyMagickString(image->magick,read_info->magick,MaxTextExtent);      (void) FormatLocaleString(filename,MaxTextExtent,"%s.ufraw",        read_info->unique);      sans=AcquireExceptionInfo();      xml=FileToString(filename,MaxTextExtent,sans);      (void) RelinquishUniqueFileResource(filename);      if (xml != (char *) NULL)        {          XMLTreeInfo            *ufraw;//.........这里部分代码省略.........
开发者ID:INT2208-ST,项目名称:MyFriend,代码行数:101,


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


示例8: WritePCLImage

static MagickBooleanType WritePCLImage(const ImageInfo *image_info,Image *image,  ExceptionInfo *exception){  char    buffer[MagickPathExtent];  CompressionType    compression;  const char    *option;  MagickBooleanType    status;  MagickOffsetType    scene;  register const Quantum *p;  register ssize_t i, x;  register unsigned char *q;  size_t    density,    length,    one,    packets;  ssize_t    y;  unsigned char    bits_per_pixel,    *compress_pixels,    *pixels,    *previous_pixels;  /*    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);  density=75;  if (image_info->density != (char *) NULL)    {      GeometryInfo        geometry;      (void) ParseGeometry(image_info->density,&geometry);      density=(size_t) geometry.rho;    }  scene=0;  one=1;  do  {    /*      Initialize the printer.    */    (void) TransformImageColorspace(image,sRGBColorspace,exception);    (void) WriteBlobString(image,"/033E");  /* printer reset */    (void) WriteBlobString(image,"/033*r3F");  /* set presentation mode */    (void) FormatLocaleString(buffer,MagickPathExtent,"/033*r%.20gs%.20gT",      (double) image->columns,(double) image->rows);    (void) WriteBlobString(image,buffer);    (void) FormatLocaleString(buffer,MagickPathExtent,"/033*t%.20gR",(double)      density);    (void) WriteBlobString(image,buffer);    (void) WriteBlobString(image,"/033&l0E");  /* top margin 0 */    if (SetImageMonochrome(image,exception) != MagickFalse)      {        /*          Monochrome image: use default printer monochrome setup.        */        bits_per_pixel=1;      }    else      if (image->storage_class == DirectClass)        {          /*            DirectClass image.          */          bits_per_pixel=24;          (void) WriteBlobString(image,"/033*v6W"); /* set color mode */          (void) WriteBlobByte(image,0); /* RGB */          (void) WriteBlobByte(image,3); /* direct by pixel */          (void) WriteBlobByte(image,0); /* bits per index (ignored) */          (void) WriteBlobByte(image,8); /* bits per red component */          (void) WriteBlobByte(image,8); /* bits per green component */          (void) WriteBlobByte(image,8); /* bits per blue component *///.........这里部分代码省略.........
开发者ID:278443820,项目名称:ImageMagick,代码行数:101,


示例9: WriteUILImage

//.........这里部分代码省略.........          register Quantum            *q;          colors++;          for (y=0; y < (ssize_t) image->rows; y++)          {            q=GetAuthenticPixels(image,0,y,image->columns,1,exception);            if (q == (Quantum *) NULL)              break;            for (x=0; x < (ssize_t) image->columns; x++)            {              if (matte_image[i] != 0)                SetPixelIndex(image,image->colors,q);              p++;              q+=GetPixelChannels(image);            }          }        }      if (matte_image != (unsigned char *) NULL)        matte_image=(unsigned char *) RelinquishMagickMemory(matte_image);    }  /*    Compute the character per pixel.  */  characters_per_pixel=1;  for (k=MaxCixels; (ssize_t) colors > k; k*=MaxCixels)    characters_per_pixel++;  /*    UIL header.  */  symbol=AcquireString("");  (void) WriteBlobString(image,"/* UIL *//n");  GetPathComponent(image->filename,BasePath,basename);  (void) FormatLocaleString(buffer,MaxTextExtent,    "value/n  %s_ct : color_table(/n",basename);  (void) WriteBlobString(image,buffer);  GetPixelInfo(image,&pixel);  for (i=0; i < (ssize_t) colors; i++)  {    /*      Define UIL color.    */    pixel=image->colormap[i];    pixel.colorspace=RGBColorspace;    pixel.depth=8;    pixel.alpha=(MagickRealType) OpaqueAlpha;    GetColorTuple(&pixel,MagickTrue,name);    if (transparent != MagickFalse)      if (i == (ssize_t) (colors-1))        (void) CopyMagickString(name,"None",MaxTextExtent);    /*      Write UIL color.    */    k=i % MaxCixels;    symbol[0]=Cixel[k];    for (j=1; j < (int) characters_per_pixel; j++)    {      k=((i-k)/MaxCixels) % MaxCixels;      symbol[j]=Cixel[k];    }    symbol[j]='/0';    (void) SubstituteString(&symbol,"'","''");    if (LocaleCompare(name,"None") == 0)      (void) FormatLocaleString(buffer,MaxTextExtent,        "    background color = '%s'",symbol);    else
开发者ID:Ladeira,项目名称:ImageMagick,代码行数:67,


示例10: 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:riingo,项目名称:ImageMagick,代码行数:101,


示例11: WriteMTVImage

/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%                                                                             %%                                                                             %%                                                                             %%   W r i t e M T V I m a g e                                                 %%                                                                             %%                                                                             %%                                                                             %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  WriteMTVImage() writes an image to a file in red, green, and blue MTV%  rasterfile format.%%  The format of the WriteMTVImage method is:%%      MagickBooleanType WriteMTVImage(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 WriteMTVImage(const ImageInfo *image_info,Image *image,  ExceptionInfo *exception){  char    buffer[MagickPathExtent];  MagickBooleanType    status;  MagickOffsetType    scene;  register const Quantum    *p;  register ssize_t    x;  register unsigned char    *q;  ssize_t    y;  unsigned char    *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);  assert(exception != (ExceptionInfo *) NULL);  assert(exception->signature == MagickSignature);  status=OpenBlob(image_info,image,WriteBinaryBlobMode,exception);  if (status == MagickFalse)    return(status);  scene=0;  do  {    /*      Allocate memory for pixels.    */    (void) TransformImageColorspace(image,sRGBColorspace,exception);    pixels=(unsigned char *) AcquireQuantumMemory(image->columns,      3UL*sizeof(*pixels));    if (pixels == (unsigned char *) NULL)      ThrowWriterException(ResourceLimitError,"MemoryAllocationFailed");    /*      Initialize raster file header.    */    (void) FormatLocaleString(buffer,MagickPathExtent,"%.20g %.20g/n",(double)      image->columns,(double) image->rows);    (void) WriteBlobString(image,buffer);    for (y=0; y < (ssize_t) image->rows; y++)    {      p=GetVirtualPixels(image,0,y,image->columns,1,exception);      if (p == (const Quantum *) NULL)        break;      q=pixels;      for (x=0; x < (ssize_t) image->columns; x++)      {        *q++=ScaleQuantumToChar(GetPixelRed(image,p));        *q++=ScaleQuantumToChar(GetPixelGreen(image,p));        *q++=ScaleQuantumToChar(GetPixelBlue(image,p));        p+=GetPixelChannels(image);      }      (void) WriteBlob(image,(size_t) (q-pixels),pixels);//.........这里部分代码省略.........
开发者ID:edalquist,项目名称:ImageMagick,代码行数:101,


示例12: WriteMPEGImage

static MagickBooleanType WriteMPEGImage(const ImageInfo *image_info,  Image *image){#define WriteMPEGIntermediateFormat "jpg"  char    basename[MaxTextExtent],    filename[MaxTextExtent];  double    delay;  Image    *coalesce_image;  ImageInfo    *write_info;  int    file;  MagickBooleanType    status;  register Image    *p;  register ssize_t    i;  size_t    count,    length,    scene;  unsigned char    *blob;  /*    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);  (void) CloseBlob(image);  /*    Write intermediate files.  */  coalesce_image=CoalesceImages(image,&image->exception);  if (coalesce_image == (Image *) NULL)    return(MagickFalse);  file=AcquireUniqueFileResource(basename);  if (file != -1)    file=close(file)-1;  (void) FormatLocaleString(coalesce_image->filename,MaxTextExtent,"%s",    basename);  count=0;  write_info=CloneImageInfo(image_info);  *write_info->magick='/0';  for (p=coalesce_image; p != (Image *) NULL; p=GetNextImageInList(p))  {    char      previous_image[MaxTextExtent];    blob=(unsigned char *) NULL;    length=0;    scene=p->scene;    delay=100.0*p->delay/MagickMax(1.0*p->ticks_per_second,1.0);    for (i=0; i < (ssize_t) MagickMax((1.0*delay+1.0)/3.0,1.0); i++)    {      p->scene=count;      count++;      status=MagickFalse;      switch (i)      {        case 0:        {          Image            *frame;          (void) FormatLocaleString(p->filename,MaxTextExtent,"%s%.20g.%s",            basename,(double) p->scene,WriteMPEGIntermediateFormat);          (void) FormatLocaleString(filename,MaxTextExtent,"%s%.20g.%s",            basename,(double) p->scene,WriteMPEGIntermediateFormat);          (void) FormatLocaleString(previous_image,MaxTextExtent,            "%s%.20g.%s",basename,(double) p->scene,            WriteMPEGIntermediateFormat);          frame=CloneImage(p,0,0,MagickTrue,&p->exception);          if (frame == (Image *) NULL)            break;          status=WriteImage(write_info,frame);          frame=DestroyImage(frame);          break;        }//.........这里部分代码省略.........
开发者ID:CamiloBenavides,项目名称:SnoutPoint-Web,代码行数:101,


示例13: AcquireMagickCLI

/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%                                                                             %%                                                                             %%                                                                             %+   A c q u i r e W a n d C L I                                               %%                                                                             %%                                                                             %%                                                                             %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  AcquireMagickCLI() creates a new CLI wand (an expanded form of Magick%  Wand). The given image_info and exception is included as is if provided.%%  Use DestroyMagickCLI() to dispose of the CLI wand when it is no longer%  needed.%%  The format of the NewMagickWand method is:%%      MagickCLI *AcquireMagickCLI(ImageInfo *image_info,%           ExceptionInfo *exception)%*/WandExport MagickCLI *AcquireMagickCLI(ImageInfo *image_info,    ExceptionInfo *exception){  MagickCLI    *cli_wand;  /* precaution - as per NewMagickWand() */  {     size_t depth = MAGICKCORE_QUANTUM_DEPTH;     const char *quantum = GetMagickQuantumDepth(&depth);     if (depth != MAGICKCORE_QUANTUM_DEPTH)       ThrowWandFatalException(WandError,"QuantumDepthMismatch",quantum);  }  /* allocate memory for MgaickCLI */  cli_wand=(MagickCLI *) AcquireMagickMemory(sizeof(*cli_wand));  if (cli_wand == (MagickCLI *) NULL)    {      ThrowWandFatalException(ResourceLimitFatalError,"MemoryAllocationFailed",        GetExceptionMessage(errno));      return((MagickCLI *)NULL);    }  /* Initialize Wand Part of MagickCLI     FUTURE: this is a repeat of code from NewMagickWand()     However some parts may be given fro man external source!  */  cli_wand->wand.id=AcquireWandId();  (void) FormatLocaleString(cli_wand->wand.name,MaxTextExtent,           "%s-%.20g","MagickWandCLI", (double) cli_wand->wand.id);  cli_wand->wand.images=NewImageList();  if ( image_info == (ImageInfo *)NULL)    cli_wand->wand.image_info=AcquireImageInfo();  else    cli_wand->wand.image_info=image_info;  if ( exception == (ExceptionInfo *)NULL)    cli_wand->wand.exception=AcquireExceptionInfo();  else    cli_wand->wand.exception=exception;  cli_wand->wand.debug=IsEventLogging();  cli_wand->wand.signature=WandSignature;  /* Initialize CLI Part of MagickCLI */  cli_wand->draw_info=CloneDrawInfo(cli_wand->wand.image_info,(DrawInfo *) NULL);  cli_wand->quantize_info=AcquireQuantizeInfo(cli_wand->wand.image_info);  cli_wand->process_flags=MagickCommandOptionFlags;  /* assume "magick" CLI */  cli_wand->command=(const OptionInfo *)NULL;     /* no option at this time */  cli_wand->image_list_stack=(Stack *)NULL;  cli_wand->image_info_stack=(Stack *)NULL;  /* default exception location...     EG: sprintf(locaiton, filename, line, column);  */  cli_wand->location="from /"%s/"";   /* location format using arguments: */                                      /*      filename, line, column */  cli_wand->filename="unknown";       /* script filename, unknown source */  cli_wand->line=0;                   /* line from script OR CLI argument */  cli_wand->column=0;                 /* column from script */  cli_wand->signature=WandSignature;  if (IfMagickTrue(cli_wand->wand.debug))    (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",cli_wand->wand.name);  return(cli_wand);}
开发者ID:0xPr0xy,项目名称:ImageMagick,代码行数:87,


示例14: WriteHDRImage

static MagickBooleanType WriteHDRImage(const ImageInfo *image_info,Image *image,  ExceptionInfo *exception){  char    header[MaxTextExtent];  const char    *property;  MagickBooleanType    status;  register const Quantum    *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);  assert(exception != (ExceptionInfo *) NULL);  assert(exception->signature == MagickSignature);  status=OpenBlob(image_info,image,WriteBinaryBlobMode,exception);  if (status == MagickFalse)    return(status);  if (IsRGBColorspace(image->colorspace) == MagickFalse)    (void) TransformImageColorspace(image,RGBColorspace,exception);  /*    Write header.  */  (void) ResetMagickMemory(header,' ',MaxTextExtent);  length=CopyMagickString(header,"#?RGBE/n",MaxTextExtent);  (void) WriteBlob(image,length,(unsigned char *) header);  property=GetImageProperty(image,"comment",exception);  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",exception);  if (property != (const char *) NULL)    {      count=FormatLocaleString(header,MaxTextExtent,"EXPOSURE=%g/n",        atof(property));      (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,4*    sizeof(*pixels));  if (pixels == (unsigned char *) NULL)    ThrowWriterException(ResourceLimitError,"MemoryAllocationFailed");  for (y=0; y < (ssize_t) image->rows; y++)  {    p=GetVirtualPixels(image,0,y,image->columns,1,exception);    if (p == (const Quantum *) NULL)      break;    if ((image->columns >= 8) && (image->columns <= 0x7ffff))      {        pixel[0]=2;        pixel[1]=2;        pixel[2]=(unsigned char) (image->columns >> 8);//.........这里部分代码省略.........
开发者ID:ChaseReid,项目名称:ImageMagick,代码行数:101,


示例15: analyzeImage

//.........这里部分代码省略.........        saturation_sum_x4=0.0;        saturation_mean=0.0;        saturation_standard_deviation=0.0;        saturation_kurtosis=0.0;        saturation_skewness=0.0;        area=0.0;        status=MagickTrue;        image_view=AcquireVirtualCacheView(image,exception);#if defined(MAGICKCORE_OPENMP_SUPPORT)        #pragma omp parallel for schedule(static,4) shared(status) /        magick_threads(image,image,image->rows,1)#endif        for (y=0; y < (ssize_t) image->rows; y++)        {            register const PixelPacket            *p;            register ssize_t            x;            if (status == MagickFalse)                continue;            p=GetCacheViewVirtualPixels(image_view,0,y,image->columns,1,exception);            if (p == (const PixelPacket *) NULL)            {                status=MagickFalse;                continue;            }            for (x=0; x < (ssize_t) image->columns; x++)            {                ConvertRGBToHSB(GetPixelRed(p),GetPixelGreen(p),GetPixelBlue(p),                                &hue,&saturation,&brightness);                brightness*=QuantumRange;                brightness_sum_x+=brightness;                brightness_sum_x2+=brightness*brightness;                brightness_sum_x3+=brightness*brightness*brightness;                brightness_sum_x4+=brightness*brightness*brightness*brightness;                saturation*=QuantumRange;                saturation_sum_x+=saturation;                saturation_sum_x2+=saturation*saturation;                saturation_sum_x3+=saturation*saturation*saturation;                saturation_sum_x4+=saturation*saturation*saturation*saturation;                area++;                p++;            }        }        image_view=DestroyCacheView(image_view);        if (area <= 0.0)            break;        brightness_mean=brightness_sum_x/area;        (void) FormatLocaleString(text,MaxTextExtent,"%g",brightness_mean);        (void) SetImageProperty(image,"filter:brightness:mean",text);        brightness_standard_deviation=sqrt(brightness_sum_x2/area-(brightness_sum_x/                                           area*brightness_sum_x/area));        (void) FormatLocaleString(text,MaxTextExtent,"%g",                                  brightness_standard_deviation);        (void) SetImageProperty(image,"filter:brightness:standard-deviation",text);        if (brightness_standard_deviation != 0)            brightness_kurtosis=(brightness_sum_x4/area-4.0*brightness_mean*                                 brightness_sum_x3/area+6.0*brightness_mean*brightness_mean*                                 brightness_sum_x2/area-3.0*brightness_mean*brightness_mean*                                 brightness_mean*brightness_mean)/(brightness_standard_deviation*                                         brightness_standard_deviation*brightness_standard_deviation*                                         brightness_standard_deviation)-3.0;        (void) FormatLocaleString(text,MaxTextExtent,"%g",brightness_kurtosis);        (void) SetImageProperty(image,"filter:brightness:kurtosis",text);        if (brightness_standard_deviation != 0)            brightness_skewness=(brightness_sum_x3/area-3.0*brightness_mean*                                 brightness_sum_x2/area+2.0*brightness_mean*brightness_mean*                                 brightness_mean)/(brightness_standard_deviation*                                                   brightness_standard_deviation*brightness_standard_deviation);        (void) FormatLocaleString(text,MaxTextExtent,"%g",brightness_skewness);        (void) SetImageProperty(image,"filter:brightness:skewness",text);        saturation_mean=saturation_sum_x/area;        (void) FormatLocaleString(text,MaxTextExtent,"%g",saturation_mean);        (void) SetImageProperty(image,"filter:saturation:mean",text);        saturation_standard_deviation=sqrt(saturation_sum_x2/area-(saturation_sum_x/                                           area*saturation_sum_x/area));        (void) FormatLocaleString(text,MaxTextExtent,"%g",                                  saturation_standard_deviation);        (void) SetImageProperty(image,"filter:saturation:standard-deviation",text);        if (saturation_standard_deviation != 0)            saturation_kurtosis=(saturation_sum_x4/area-4.0*saturation_mean*                                 saturation_sum_x3/area+6.0*saturation_mean*saturation_mean*                                 saturation_sum_x2/area-3.0*saturation_mean*saturation_mean*                                 saturation_mean*saturation_mean)/(saturation_standard_deviation*                                         saturation_standard_deviation*saturation_standard_deviation*                                         saturation_standard_deviation)-3.0;        (void) FormatLocaleString(text,MaxTextExtent,"%g",saturation_kurtosis);        (void) SetImageProperty(image,"filter:saturation:kurtosis",text);        if (saturation_standard_deviation != 0)            saturation_skewness=(saturation_sum_x3/area-3.0*saturation_mean*                                 saturation_sum_x2/area+2.0*saturation_mean*saturation_mean*                                 saturation_mean)/(saturation_standard_deviation*                                                   saturation_standard_deviation*saturation_standard_deviation);        (void) FormatLocaleString(text,MaxTextExtent,"%g",saturation_skewness);        (void) SetImageProperty(image,"filter:saturation:skewness",text);    }    return(MagickImageFilterSignature);}
开发者ID:dadsez,项目名称:SnoutPoint-Networks,代码行数:101,


示例16: ReadLABELImage

//.........这里部分代码省略.........  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);      }    }  status=GetMultilineTypeMetrics(image,draw_info,&metrics);  if (status == MagickFalse)    {      InheritException(exception,&image->exception);      image=DestroyImageList(image);      return((Image *) NULL);    }  if (image->columns == 0)    image->columns=(size_t) (metrics.width+draw_info->stroke_width+1.5);  if (image->columns == 0)    image->columns=(size_t) (draw_info->pointsize+draw_info->stroke_width+1.5);  if ((draw_info->gravity == UndefinedGravity) ||      (draw_info->direction == RightToLeftDirection))    {      (void) FormatLocaleString(geometry,MaxTextExtent,"%+g%+g",        -metrics.bounds.x1+draw_info->stroke_width/2.0,metrics.ascent+        draw_info->stroke_width/2.0);      if (draw_info->direction == RightToLeftDirection)        (void) FormatLocaleString(geometry,MaxTextExtent,"%+g%+g",          image->columns-(metrics.bounds.x2+draw_info->stroke_width/2.0),          metrics.ascent+draw_info->stroke_width/2.0);      draw_info->geometry=AcquireString(geometry);    }  if (image->rows == 0)    image->rows=(size_t) floor(metrics.height+draw_info->stroke_width+0.5);  if (image->rows == 0)    image->rows=(size_t) floor(draw_info->pointsize+draw_info->stroke_width+      0.5);  if (SetImageBackgroundColor(image) == MagickFalse)    {      InheritException(exception,&image->exception);      image=DestroyImageList(image);      return((Image *) NULL);    }  (void) AnnotateImage(image,draw_info);  if (image_info->pointsize == 0.0)    {      char        pointsize[MaxTextExtent];      (void) FormatLocaleString(pointsize,MaxTextExtent,"%.20g",        draw_info->pointsize);      (void) SetImageProperty(image,"label:pointsize",pointsize);    }  draw_info=DestroyDrawInfo(draw_info);  return(GetFirstImageInList(image));}
开发者ID:0xPr0xy,项目名称:ImageMagick,代码行数:101,


示例17: 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;  if (image->columns == 0)    {      text=AcquireString(caption);      i=FormatMagickCaption(image,draw_info,split,&metrics,&text);      (void) CloneString(&draw_info->text,text);      text=DestroyString(text);      (void) FormatLocaleString(geometry,MaxTextExtent,"%+g%+g",//.........这里部分代码省略.........
开发者ID:UIKit0,项目名称:YoyaMagick,代码行数:101,


示例18: WriteHISTOGRAMImage

//.........这里部分代码省略.........  scale=(MagickRealType) histogram_image->rows/maximum;  /*    Initialize histogram image.  */  exception=(&image->exception);  (void) QueryColorDatabase("#000",&histogram_image->background_color,    &image->exception);  (void) SetImageBackgroundColor(histogram_image);  for (x=0; x < (ssize_t) histogram_image->columns; x++)  {    q=GetAuthenticPixels(histogram_image,x,0,1,histogram_image->rows,exception);    if (q == (PixelPacket *) NULL)      break;    if ((channel & RedChannel) != 0)      {        y=(ssize_t) ceil(histogram_image->rows-scale*histogram[x].red-0.5);        r=q+y;        for ( ; y < (ssize_t) histogram_image->rows; y++)        {          SetPixelRed(r,QuantumRange);          r++;        }      }    if ((channel & GreenChannel) != 0)      {        y=(ssize_t) ceil(histogram_image->rows-scale*histogram[x].green-0.5);        r=q+y;        for ( ; y < (ssize_t) histogram_image->rows; y++)        {          SetPixelGreen(r,QuantumRange);          r++;        }      }    if ((channel & BlueChannel) != 0)      {        y=(ssize_t) ceil(histogram_image->rows-scale*histogram[x].blue-0.5);        r=q+y;        for ( ; y < (ssize_t) histogram_image->rows; y++)        {          SetPixelBlue(r,QuantumRange);          r++;        }      }    if (SyncAuthenticPixels(histogram_image,exception) == MagickFalse)      break;    status=SetImageProgress(image,SaveImageTag,y,histogram_image->rows);    if (status == MagickFalse)      break;  }  /*    Relinquish resources.  */  histogram=(MagickPixelPacket *) RelinquishMagickMemory(histogram);  option=GetImageOption(image_info,"histogram:unique-colors");  if ((option == (const char *) NULL) || (IsMagickTrue(option) != MagickFalse))    {      FILE        *file;      int        unique_file;      /*        Add a unique colors as an image comment.      */      file=(FILE *) NULL;      unique_file=AcquireUniqueFileResource(filename);      if (unique_file != -1)        file=fdopen(unique_file,"wb");      if ((unique_file != -1) && (file != (FILE *) NULL))        {          char            *property;          (void) GetNumberColors(image,file,&image->exception);          (void) fclose(file);          property=FileToString(filename,~0UL,&image->exception);          if (property != (char *) NULL)            {              (void) SetImageProperty(histogram_image,"comment",property);              property=DestroyString(property);            }        }      (void) RelinquishUniqueFileResource(filename);    }  /*    Write Histogram image.  */  (void) CopyMagickString(histogram_image->filename,image_info->filename,    MaxTextExtent);  write_info=CloneImageInfo(image_info);  (void) SetImageInfo(write_info,1,&image->exception);  if (LocaleCompare(write_info->magick,"HISTOGRAM") == 0)    (void) FormatLocaleString(histogram_image->filename,MaxTextExtent,      "miff:%s",write_info->filename);  status=WriteImage(write_info,histogram_image);  histogram_image=DestroyImage(histogram_image);  write_info=DestroyImageInfo(write_info);  return(status);}
开发者ID:0xPr0xy,项目名称:ImageMagick,代码行数:101,


示例19: WriteTHUMBNAILImage

/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%                                                                             %%                                                                             %%                                                                             %%   W r i t e T H U M B N A I L I m a g e                                     %%                                                                             %%                                                                             %%                                                                             %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  WriteTHUMBNAILImage() extracts the EXIF thumbnail image and writes it.%%  The format of the WriteTHUMBNAILImage method is:%%      MagickBooleanType WriteTHUMBNAILImage(const ImageInfo *image_info,%        Image *image)%%  A description of each parameter follows.%%    o image_info: the image info.%%    o image:  The image.%*/static MagickBooleanType WriteTHUMBNAILImage(const ImageInfo *image_info,  Image *image){  const char    *property;  const StringInfo    *profile;  Image    *thumbnail_image;  ImageInfo    *write_info;  MagickBooleanType    status;  register ssize_t    i;  size_t    length;  ssize_t    offset;  unsigned char    magick[MaxTextExtent];  profile=GetImageProfile(image,"exif");  if (profile == (const StringInfo *) NULL)    ThrowWriterException(CoderError,"ImageDoesNotHaveAThumbnail");  property=GetImageProperty(image,"exif:JPEGInterchangeFormat");  if (property == (const char *) NULL)    ThrowWriterException(CoderError,"ImageDoesNotHaveAThumbnail");  offset=(ssize_t) StringToLong(property);  property=GetImageProperty(image,"exif:JPEGInterchangeFormatLength");  if (property == (const char *) NULL)    ThrowWriterException(CoderError,"ImageDoesNotHaveAThumbnail");  length=(size_t) StringToLong(property);  (void) ResetMagickMemory(magick,0,sizeof(magick));  for (i=0; i < (ssize_t) length; i++)  {    magick[0]=magick[1];    magick[1]=magick[2];    magick[2]=GetStringInfoDatum(profile)[offset+i];    if (memcmp(magick,"/377/330/377",3) == 0)      break;  }  thumbnail_image=BlobToImage(image_info,GetStringInfoDatum(profile)+offset+i-2,    length,&image->exception);  if (thumbnail_image == (Image *) NULL)    return(MagickFalse);  (void) SetImageType(thumbnail_image,thumbnail_image->matte == MagickFalse ?    TrueColorType : TrueColorMatteType);  (void) CopyMagickString(thumbnail_image->filename,image->filename,    MaxTextExtent);  write_info=CloneImageInfo(image_info);  (void) SetImageInfo(write_info,1,&image->exception);  *write_info->magick='/0';  if (LocaleCompare(write_info->magick,"THUMBNAIL") == 0)    (void) FormatLocaleString(thumbnail_image->filename,MaxTextExtent,      "miff:%s",write_info->filename);  status=WriteImage(write_info,thumbnail_image);  thumbnail_image=DestroyImage(thumbnail_image);  write_info=DestroyImageInfo(write_info);  return(status);}
开发者ID:INT2208-ST,项目名称:MyFriend,代码行数:94,


示例20: 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)%%  A description of each parameter follows.%%    o image_info: the image info.%%    o image:  The image.%*/static MagickBooleanType WriteCIPImage(const ImageInfo *image_info,Image *image){  char    buffer[MaxTextExtent];  const char    *value;  MagickBooleanType    status;  register const PixelPacket    *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 == 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);  (void) WriteBlobString(image,"<CiscoIPPhoneImage>/n");  value=GetImageProperty(image,"label");  if (value != (const char *) NULL)    (void) FormatLocaleString(buffer,MaxTextExtent,"<Title>%s</Title>/n",value);  else    {      char        basename[MaxTextExtent];      GetPathComponent(image->filename,BasePath,basename);      (void) FormatLocaleString(buffer,MaxTextExtent,"<Title>%s</Title>/n",        basename);    }  (void) WriteBlobString(image,buffer);  (void) FormatLocaleString(buffer,MaxTextExtent,    "<LocationX>%.20g</LocationX>/n",(double) image->page.x);  (void) WriteBlobString(image,buffer);  (void) FormatLocaleString(buffer,MaxTextExtent,    "<LocationY>%.20g</LocationY>/n",(double) image->page.y);  (void) WriteBlobString(image,buffer);  (void) FormatLocaleString(buffer,MaxTextExtent,"<Width>%.20g</Width>/n",    (double) (image->columns+(image->columns % 2)));  (void) WriteBlobString(image,buffer);  (void) FormatLocaleString(buffer,MaxTextExtent,"<Height>%.20g</Height>/n",    (double) image->rows);  (void) WriteBlobString(image,buffer);  (void) FormatLocaleString(buffer,MaxTextExtent,"<Depth>2</Depth>/n");  (void) WriteBlobString(image,buffer);  (void) WriteBlobString(image,"<Data>");  (void) TransformImageColorspace(image,sRGBColorspace);  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;    for (x=0; x < ((ssize_t) image->columns-3); x+=4)    {      byte=(unsigned char)        ((((size_t) (3*ClampToQuantum(GetPixelLuma(image,p+3))/QuantumRange) & 0x03) << 6) |//.........这里部分代码省略.........
开发者ID:CamiloBenavides,项目名称:SnoutPoint-Web,代码行数:101,


示例21: WriteHTMLImage

//.........这里部分代码省略.........    (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.        */        assert(exception != (ExceptionInfo *) NULL);        status=OpenBlob(image_info,image,WriteBinaryBlobMode,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",exception);        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,                                  "<map id=/"%s/" name=/"%s/">/n",mapname,mapname);        (void) WriteBlobString(image,buffer);
开发者ID:aakritigupta,项目名称:ImageMagick,代码行数:67,


示例22: WritePS2Image

//.........这里部分代码省略.........  page=1;  scene=0;  do  {    /*      Scale relative to dots-per-inch.    */    delta.x=DefaultResolution;    delta.y=DefaultResolution;    resolution.x=image->x_resolution;    resolution.y=image->y_resolution;    if ((resolution.x == 0.0) || (resolution.y == 0.0))      {        flags=ParseGeometry(PSDensityGeometry,&geometry_info);        resolution.x=geometry_info.rho;        resolution.y=geometry_info.sigma;        if ((flags & SigmaValue) == 0)          resolution.y=resolution.x;      }    if (image_info->density != (char *) NULL)      {        flags=ParseGeometry(image_info->density,&geometry_info);        resolution.x=geometry_info.rho;        resolution.y=geometry_info.sigma;        if ((flags & SigmaValue) == 0)          resolution.y=resolution.x;      }    if (image->units == PixelsPerCentimeterResolution)      {        resolution.x=(size_t) (100.0*2.54*resolution.x+0.5)/100.0;        resolution.y=(size_t) (100.0*2.54*resolution.y+0.5)/100.0;      }    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");
开发者ID:271845221,项目名称:Android-ImageMagick,代码行数:67,


示例23: WritePICONImage

//.........这里部分代码省略.........      colors++;      picon->colormap=(PixelPacket *) ResizeQuantumMemory((void **)        picon->colormap,(size_t) colors,sizeof(*picon->colormap));      if (picon->colormap == (PixelPacket *) NULL)        ThrowWriterException(ResourceLimitError,"MemoryAllocationError");      for (y=0; y < (ssize_t) picon->rows; y++)      {        q=GetAuthenticPixels(picon,0,y,picon->columns,1,exception);        if (q == (PixelPacket *) NULL)          break;        indexes=GetAuthenticIndexQueue(picon);        for (x=0; x < (ssize_t) picon->columns; x++)        {          if (q->opacity == (Quantum) TransparentOpacity)            SetPixelIndex(indexes+x,picon->colors);          q++;        }        if (SyncAuthenticPixels(picon,exception) == MagickFalse)          break;      }    }  /*    Compute the character per pixel.  */  characters_per_pixel=1;  for (k=MaxCixels; (ssize_t) colors > k; k*=MaxCixels)    characters_per_pixel++;  /*    XPM header.  */  (void) WriteBlobString(image,"/* XPM *//n");  GetPathComponent(picon->filename,BasePath,basename);  (void) FormatLocaleString(buffer,MaxTextExtent,    "static char *%s[] = {/n",basename);  (void) WriteBlobString(image,buffer);  (void) WriteBlobString(image,"/* columns rows colors chars-per-pixel *//n");  (void) FormatLocaleString(buffer,MaxTextExtent,    "/"%.20g %.20g %.20g %.20g/",/n",(double) picon->columns,(double)    picon->rows,(double) colors,(double) characters_per_pixel);  (void) WriteBlobString(image,buffer);  GetMagickPixelPacket(image,&pixel);  for (i=0; i < (ssize_t) colors; i++)  {    /*      Define XPM color.    */    SetMagickPixelPacket(image,picon->colormap+i,(IndexPacket *) NULL,&pixel);    pixel.colorspace=sRGBColorspace;    pixel.depth=8;    pixel.opacity=(MagickRealType) OpaqueOpacity;    (void) QueryMagickColorname(image,&pixel,XPMCompliance,name,      &image->exception);    if (transparent != MagickFalse)      {        if (i == (ssize_t) (colors-1))          (void) CopyMagickString(name,"grey75",MaxTextExtent);      }    /*      Write XPM color.    */    k=i % MaxCixels;    symbol[0]=Cixel[k];    for (j=1; j < (ssize_t) characters_per_pixel; j++)    {      k=((i-k)/MaxCixels) % MaxCixels;
开发者ID:jakekiser,项目名称:Nodotype,代码行数:67,


示例24: WriteJP2Image

//.........这里部分代码省略.........        ThrowWriterException(ResourceLimitError,"MemoryAllocationFailed");      }  }  range=GetQuantumRange((size_t) component_info[0].prec);  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;    for (x=0; x < (ssize_t) image->columns; x++)    {      if (number_components == 1)        jas_matrix_setv(pixels[0],x,(jas_seqent_t) ScaleQuantumToAny(          ClampToQuantum(GetPixelLuma(image,p)),range));      else        {          jas_matrix_setv(pixels[0],x,(jas_seqent_t)            ScaleQuantumToAny(GetPixelRed(p),range));          jas_matrix_setv(pixels[1],x,(jas_seqent_t)            ScaleQuantumToAny(GetPixelGreen(p),range));          jas_matrix_setv(pixels[2],x,(jas_seqent_t)            ScaleQuantumToAny(GetPixelBlue(p),range));          if (number_components > 3)            jas_matrix_setv(pixels[3],x,(jas_seqent_t)              ScaleQuantumToAny((Quantum) (GetPixelAlpha(p)),range));        }      p++;    }    for (i=0; i < (ssize_t) number_components; i++)      (void) jas_image_writecmpt(jp2_image,(short) i,0,(unsigned int) y,        (unsigned int) image->columns,1,pixels[i]);    status=SetImageProgress(image,SaveImageTag,(MagickOffsetType) y,      image->rows);    if (status == MagickFalse)      break;  }  (void) CopyMagickString(magick,image_info->magick,MaxTextExtent);  if (LocaleCompare(magick,"J2C") == 0)    (void) CopyMagickString(magick,"JPC",MaxTextExtent);  LocaleLower(magick);  format=jas_image_strtofmt(magick);  options=(char *) NULL;  ResetImageOptionIterator(image_info);  key=GetNextImageOption(image_info);  for ( ; key != (char *) NULL; key=GetNextImageOption(image_info))  {    option=GetImageOption(image_info,key);    if (option == (const char *) NULL)      continue;    if (LocaleNCompare(key,"jp2:",4) == 0)      {        (void) ConcatenateString(&options,key+4);        if (*option != '/0')          {            (void) ConcatenateString(&options,"=");            (void) ConcatenateString(&options,option);          }        (void) ConcatenateString(&options," ");      }  }  option=GetImageOption(image_info,"jp2:rate");  if ((option == (const char *) NULL) &&      (image_info->compression != LosslessJPEGCompression) &&      (image->quality != UndefinedCompressionQuality) &&      ((double) image->quality <= 99.5) &&      ((image->rows*image->columns) > 2500))    {      char        option[MaxTextExtent];      double        alpha,        header_size,        number_pixels,        rate,        target_size;      alpha=115.0-image->quality;      rate=100.0/(alpha*alpha);      header_size=550.0;      header_size+=(number_components-1)*142;      number_pixels=(double) image->rows*image->columns*number_components*        (GetImageQuantumDepth(image,MagickTrue)/8);      target_size=(number_pixels*rate)+header_size;      rate=target_size/number_pixels;      (void) FormatLocaleString(option,MaxTextExtent,"rate=%g",rate);      (void) ConcatenateString(&options,option);    }  status=jas_image_encode(jp2_image,jp2_stream,format,options) != 0 ?    MagickTrue : MagickFalse;  if (options != (char *) NULL)    options=DestroyString(options);  (void) jas_stream_close(jp2_stream);  for (i=0; i < (ssize_t) number_components; i++)    jas_matrix_destroy(pixels[i]);  jas_image_destroy(jp2_image);  if (status != MagickFalse)    ThrowWriterException(DelegateError,"UnableToEncodeImageFile");  return(MagickTrue);}
开发者ID:0xPr0xy,项目名称:ImageMagick,代码行数:101,


示例25: assert

/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%                                                                             %%                                                                             %%                                                                             %%   R e a d G R A D I E N T I m a g e                                         %%                                                                             %%                                                                             %%                                                                             %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  ReadGRADIENTImage creates a gradient image and initializes it to%  the color range as specified by the filename.  It allocates the memory%  necessary for the new Image structure and returns a pointer to the new%  image.%%  The format of the ReadGRADIENTImage method is:%%      Image *ReadGRADIENTImage(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 *ReadGRADIENTImage(const ImageInfo *image_info,  ExceptionInfo *exception){  char    colorname[MagickPathExtent+4];  Image    *image;  ImageInfo    *read_info;  MagickBooleanType    icc_color,    status;  StopInfo    *stops;  /*    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);  read_info=CloneImageInfo(image_info);  SetImageInfoBlob(read_info,(void *) NULL,0);  (void) CopyMagickString(colorname,image_info->filename,MagickPathExtent);  (void) sscanf(image_info->filename,"%[^-]",colorname);  (void) FormatLocaleString(read_info->filename,MagickPathExtent,"xc:%s",    colorname);  image=ReadImage(read_info,exception);  read_info=DestroyImageInfo(read_info);  if (image == (Image *) NULL)    return((Image *) NULL);  (void) SetImageAlpha(image,(Quantum) TransparentAlpha,exception);  (void) CopyMagickString(image->filename,image_info->filename,MagickPathExtent);  icc_color=MagickFalse;  if (LocaleCompare(colorname,"icc") == 0)    {      (void) ConcatenateMagickString(colorname,"-",MagickPathExtent);      (void) sscanf(image_info->filename,"%*[^-]-%[^-]",colorname+4);      icc_color=MagickTrue;    }  stops=(StopInfo *) AcquireQuantumMemory(2,sizeof(*stops));  if (stops == (StopInfo *) NULL)    ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");  stops[0].offset=0.0;  stops[1].offset=1.0;  status=QueryColorCompliance(colorname,AllCompliance,&stops[0].color,exception);  if (status == MagickFalse)    {      stops=(StopInfo *) RelinquishMagickMemory(stops);      image=DestroyImage(image);      return((Image *) NULL);    }  (void) SetImageColorspace(image,stops[0].color.colorspace,exception);  (void) CopyMagickString(colorname,"white",MagickPathExtent);  if (GetPixelInfoIntensity(image,&stops[0].color) > (QuantumRange/2.0))    (void) CopyMagickString(colorname,"black",MagickPathExtent);  if (icc_color == MagickFalse)    (void) sscanf(image_info->filename,"%*[^-]-%[^-]",colorname);  else    (void) sscanf(image_info->filename,"%*[^-]-%*[^-]-%[^-]",colorname);  status=QueryColorCompliance(colorname,AllCompliance,&stops[1].color,exception);  if (status == MagickFalse)    {      stops=(StopInfo *) RelinquishMagickMemory(stops);//.........这里部分代码省略.........
开发者ID:JosephineWolff,项目名称:ImageMagick,代码行数:101,


示例26: assert

//.........这里部分代码省略.........        fits_info.simple=(*p == 'T') || (*p == 't') ? MagickTrue : MagickFalse;      if (LocaleCompare(keyword,"bitpix") == 0)        fits_info.bits_per_pixel=StringToLong(p);      if (LocaleCompare(keyword,"naxis") == 0)        fits_info.number_axes=StringToLong(p);      if (LocaleCompare(keyword,"naxis1") == 0)        fits_info.columns=StringToLong(p);      if (LocaleCompare(keyword,"naxis2") == 0)        fits_info.rows=StringToLong(p);      if (LocaleCompare(keyword,"naxis3") == 0)        fits_info.number_planes=StringToLong(p);      if (LocaleCompare(keyword,"datamax") == 0)        fits_info.max_data=StringToDouble(p,(char **) NULL);      if (LocaleCompare(keyword,"datamin") == 0)        fits_info.min_data=StringToDouble(p,(char **) NULL);      if (LocaleCompare(keyword,"bzero") == 0)        fits_info.zero=StringToDouble(p,(char **) NULL);      if (LocaleCompare(keyword,"bscale") == 0)        fits_info.scale=StringToDouble(p,(char **) NULL);      if (LocaleCompare(keyword,"comment") == 0)        {          if (comment == (char *) NULL)            comment=ConstantString(p);          else            (void) ConcatenateString(&comment,p);        }      if (LocaleCompare(keyword,"xendian") == 0)        {          if (LocaleNCompare(p,"big",3) == 0)            fits_info.endian=MSBEndian;          else            fits_info.endian=LSBEndian;        }      (void) FormatLocaleString(property,MaxTextExtent,"fits:%s",keyword);      (void) SetImageProperty(image,property,p);    }    c=0;    while (((TellBlob(image) % FITSBlocksize) != 0) && (c != EOF))      c=ReadBlobByte(image);    if (fits_info.extend == MagickFalse)      break;    number_pixels=(MagickSizeType) fits_info.columns*fits_info.rows;    if ((fits_info.simple != MagickFalse) && (fits_info.number_axes >= 1) &&        (fits_info.number_axes <= 4) && (number_pixels != 0))      break;  }  /*    Verify that required image information is defined.  */  if (comment != (char *) NULL)    {      (void) SetImageProperty(image,"comment",comment);      comment=DestroyString(comment);    }  if (EOFBlob(image) != MagickFalse)    ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile",      image->filename);  number_pixels=(MagickSizeType) fits_info.columns*fits_info.rows;  if ((fits_info.simple == MagickFalse) || (fits_info.number_axes < 1) ||      (fits_info.number_axes > 4) || (number_pixels == 0))    ThrowReaderException(CorruptImageError,"ImageTypeNotSupported");  for (scene=0; scene < (ssize_t) fits_info.number_planes; scene++)  {    image->columns=(size_t) fits_info.columns;    image->rows=(size_t) fits_info.rows;    image->depth=(size_t) (fits_info.bits_per_pixel < 0 ? -1 : 1)*
开发者ID:0xPr0xy,项目名称:ImageMagick,代码行数:67,


示例27: WriteCALSImage

//.........这里部分代码省略.........    count=WriteCALSRecord(image,"docls: NONE");    count=WriteCALSRecord(image,"rtype: 1");    orient_x=0;    orient_y=0;    switch (image->orientation)    {    case TopRightOrientation:    {        orient_x=180;        orient_y=270;        break;    }    case BottomRightOrientation:    {        orient_x=180;        orient_y=90;        break;    }    case BottomLeftOrientation:    {        orient_y=90;        break;    }    case LeftTopOrientation:    {        orient_x=270;        break;    }    case RightTopOrientation:    {        orient_x=270;        orient_y=180;        break;    }    case RightBottomOrientation:    {        orient_x=90;        orient_y=180;        break;    }    case LeftBottomOrientation:    {        orient_x=90;        break;    }    default:    {        orient_y=270;        break;    }    }    (void) FormatLocaleString(header,sizeof(header),"rorient: %03ld,%03ld",                              (long) orient_x,(long) orient_y);    count=WriteCALSRecord(image,header);    (void) FormatLocaleString(header,sizeof(header),"rpelcnt: %06lu,%06lu",                              (unsigned long) image->columns,(unsigned long) image->rows);    count=WriteCALSRecord(image,header);    density=200;    if (image_info->density != (char *) NULL)    {        GeometryInfo        geometry_info;        (void) ParseGeometry(image_info->density,&geometry_info);        density=(size_t) floor(geometry_info.rho+0.5);    }    (void) FormatLocaleString(header,sizeof(header),"rdensty: %04lu",                              (unsigned long) density);    count=WriteCALSRecord(image,header);    count=WriteCALSRecord(image,"notes: NONE");    (void) ResetMagickMemory(header,' ',128);    for (i=0; i < 5; i++)        (void) WriteBlob(image,128,(unsigned char *) header);    /*      Write CALS pixels.    */    write_info=CloneImageInfo(image_info);    (void) CopyMagickString(write_info->filename,"GROUP4:",MaxTextExtent);    (void) CopyMagickString(write_info->magick,"GROUP4",MaxTextExtent);    group4_image=CloneImage(image,0,0,MagickTrue,&image->exception);    if (group4_image == (Image *) NULL)    {        (void) CloseBlob(image);        return(MagickFalse);    }    group4=(unsigned char *) ImageToBlob(write_info,group4_image,&length,                                         &image->exception);    group4_image=DestroyImage(group4_image);    if (group4 == (unsigned char *) NULL)    {        (void) CloseBlob(image);        return(MagickFalse);    }    write_info=DestroyImageInfo(write_info);    if (WriteBlob(image,length,group4) != (ssize_t) length)        status=MagickFalse;    group4=(unsigned char *) RelinquishMagickMemory(group4);    (void) CloseBlob(image);    return(status);}
开发者ID:densonclan,项目名称:poptees.shoppe,代码行数:101,


示例28: WriteFITSImage

/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%                                                                             %%                                                                             %%                                                                             %%   W r i t e F I T S I m a g e                                               %%                                                                             %%                                                                             %%                                                                             %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  WriteFITSImage() writes a Flexible Image Transport System image to a%  file as gray scale intensities [0..255].%%  The format of the WriteFITSImage method is:%%      MagickBooleanType WriteFITSImage(const ImageInfo *image_info,%        Image *image)%%  A description of each parameter follows.%%    o image_info: the image info.%%    o image:  The image.%*/static MagickBooleanType WriteFITSImage(const ImageInfo *image_info,  Image *image){  char    header[FITSBlocksize],    *fits_info;  MagickBooleanType    status;  QuantumInfo    *quantum_info;  register const PixelPacket    *p;  size_t    length;  ssize_t    count,    offset,    y;  unsigned char    *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 (IssRGBColorspace(image->colorspace) == MagickFalse)    (void) TransformImageColorspace(image,sRGBColorspace);  /*    Allocate image memory.  */  fits_info=(char *) AcquireQuantumMemory(FITSBlocksize,sizeof(*fits_info));  if (fits_info == (char *) NULL)    ThrowWriterException(ResourceLimitError,"MemoryAllocationFailed");  (void) ResetMagickMemory(fits_info,' ',FITSBlocksize*sizeof(*fits_info));  /*    Initialize image header.  */  image->depth=GetImageQuantumDepth(image,MagickFalse);  quantum_info=AcquireQuantumInfo((const ImageInfo *) NULL,image);  if (quantum_info == (QuantumInfo *) NULL)    ThrowWriterException(ResourceLimitError,"MemoryAllocationFailed");  offset=0;  (void) FormatLocaleString(header,FITSBlocksize,    "SIMPLE  =                    T");  (void) strncpy(fits_info+offset,header,strlen(header));  offset+=80;  (void) FormatLocaleString(header,FITSBlocksize,"BITPIX  =           %10ld",    (long) (quantum_info->format == FloatingPointQuantumFormat ? -1 : 1)*    image->depth);  (void) strncpy(fits_info+offset,header,strlen(header));  offset+=80;  (void) FormatLocaleString(header,FITSBlocksize,"NAXIS   =           %10lu",    IsGrayImage(image,&image->exception) != MagickFalse ? 2UL : 3UL);  (void) strncpy(fits_info+offset,header,strlen(header));  offset+=80;  (void) FormatLocaleString(header,FITSBlocksize,"NAXIS1  =           %10lu",    (unsigned long) image->columns);  (void) strncpy(fits_info+offset,header,strlen(header));  offset+=80;  (void) FormatLocaleString(header,FITSBlocksize,"NAXIS2  =           %10lu",//.........这里部分代码省略.........
开发者ID:0xPr0xy,项目名称:ImageMagick,代码行数:101,


示例29: SetImageInfoBlob

static Image *ReadPlasmaImage(const ImageInfo *image_info,  ExceptionInfo *exception){  Image    *image;  ImageInfo    *read_info;  MagickBooleanType    status;  register ssize_t    x;  register Quantum    *q;  register size_t    i;  SegmentInfo    segment_info;  size_t    depth,    max_depth;  ssize_t    y;  /*    Recursively apply plasma to the image.  */  read_info=CloneImageInfo(image_info);  SetImageInfoBlob(read_info,(void *) NULL,0);  (void) FormatLocaleString(read_info->filename,MagickPathExtent,    "gradient:%s",image_info->filename);  image=ReadImage(read_info,exception);  read_info=DestroyImageInfo(read_info);  if (image == (Image *) NULL)    return((Image *) NULL);  (void) SetImageStorageClass(image,DirectClass,exception);  for (y=0; y < (ssize_t) image->rows; y++)  {    q=GetAuthenticPixels(image,0,y,image->columns,1,exception);    if (q == (Quantum *) NULL)      break;    for (x=0; x < (ssize_t) image->columns; x++)    {      SetPixelAlpha(image,QuantumRange/2,q);      q+=GetPixelChannels(image);    }    if (SyncAuthenticPixels(image,exception) == MagickFalse)      break;  }  segment_info.x1=0;  segment_info.y1=0;  segment_info.x2=(double) image->columns-1;  segment_info.y2=(double) image->rows-1;  if (LocaleCompare(image_info->filename,"fractal") == 0)    {      RandomInfo        *random_info;      /*        Seed pixels before recursion.      */      (void) SetImageColorspace(image,sRGBColorspace,exception);      random_info=AcquireRandomInfo();      PlasmaPixel(image,random_info,segment_info.x1,segment_info.y1,exception);      PlasmaPixel(image,random_info,segment_info.x1,(segment_info.y1+        segment_info.y2)/2,exception);      PlasmaPixel(image,random_info,segment_info.x1,segment_info.y2,exception);      PlasmaPixel(image,random_info,(segment_info.x1+segment_info.x2)/2,        segment_info.y1,exception);      PlasmaPixel(image,random_info,(segment_info.x1+segment_info.x2)/2,        (segment_info.y1+segment_info.y2)/2,exception);      PlasmaPixel(image,random_info,(segment_info.x1+segment_info.x2)/2,        segment_info.y2,exception);      PlasmaPixel(image,random_info,segment_info.x2,segment_info.y1,exception);      PlasmaPixel(image,random_info,segment_info.x2,(segment_info.y1+        segment_info.y2)/2,exception);      PlasmaPixel(image,random_info,segment_info.x2,segment_info.y2,exception);      random_info=DestroyRandomInfo(random_info);    }  i=(size_t) MagickMax(image->columns,image->rows)/2;  for (max_depth=0; i != 0; max_depth++)    i>>=1;  for (depth=1; ; depth++)  {    if (PlasmaImage(image,&segment_info,0,depth,exception) != MagickFalse)      break;    status=SetImageProgress(image,LoadImageTag,(MagickOffsetType) depth,      max_depth);    if (status == MagickFalse)      break;  }  return(GetFirstImageInList(image));}
开发者ID:ImageMagick,项目名称:ImageMagick,代码行数:100,


示例30: ConjureImageCommand

//.........这里部分代码省略.........            event=ParseCommandOption(MagickLogEventOptions,MagickFalse,argv[i]);            if (event < 0)              ThrowConjureException(OptionError,"UnrecognizedEventType",                argv[i]);            (void) SetLogEventMask(argv[i]);            continue;          }        if (LocaleCompare("duration",option+1) == 0)          {            if (*option == '+')              break;            i++;            if (i == (ssize_t) (argc-1))              ThrowConjureException(OptionError,"MissingArgument",option);            if (IsGeometry(argv[i]) == MagickFalse)              ThrowConjureInvalidArgumentException(option,argv[i]);            continue;          }        if ((LocaleCompare("help",option+1) == 0) ||            (LocaleCompare("-help",option+1) == 0))          {            if (*option == '-')              return(ConjureUsage());            continue;          }        if (LocaleCompare("log",option+1) == 0)          {            if (*option == '-')              {                i++;                if (i == (ssize_t) argc)                  ThrowConjureException(OptionError,"MissingLogFormat",option);                (void) SetLogFormat(argv[i]);              }            continue;          }        if (LocaleCompare("monitor",option+1) == 0)          continue;        if (LocaleCompare("quiet",option+1) == 0)          continue;        if (LocaleCompare("regard-warnings",option+1) == 0)          break;        if (LocaleCompare("seed",option+1) == 0)          {            if (*option == '+')              break;            i++;            if (i == (ssize_t) (argc-1))              ThrowConjureException(OptionError,"MissingArgument",option);            if (IsGeometry(argv[i]) == MagickFalse)              ThrowConjureInvalidArgumentException(option,argv[i]);            break;          }        if (LocaleCompare("verbose",option+1) == 0)          {            image_info->verbose=(*option == '-') ? MagickTrue : MagickFalse;            continue;          }        if ((LocaleCompare("version",option+1) == 0) ||            (LocaleCompare("-version",option+1) == 0))          {            ListMagickVersion(stdout);            return(MagickFalse);          }        /*          Persist key/value pair.        */        (void) DeleteImageOption(image_info,option+1);        status=SetImageOption(image_info,option+1,argv[i+1]);        if (status == MagickFalse)          ThrowConjureException(ImageError,"UnableToPersistKey",option);        i++;        continue;      }    /*      Interpret MSL script.    */    (void) DeleteImageOption(image_info,"filename");    status=SetImageOption(image_info,"filename",argv[i]);    if (status == MagickFalse)      ThrowConjureException(ImageError,"UnableToPersistKey",argv[i]);    (void) FormatLocaleString(filename,MaxTextExtent,"msl:%s",argv[i]);    image=ReadImages(image_info,filename,exception);    CatchException(exception);    if (image != (Image *) NULL)      image=DestroyImageList(image);    status=image != (Image *) NULL ? MagickTrue : MagickFalse;    number_images++;  }  if (i != (ssize_t) argc)    ThrowConjureException(OptionError,"MissingAnImageFilename",argv[i]);  if (number_images == 0)    ThrowConjureException(OptionError,"MissingAnImageFilename",argv[argc-1]);  if (image != (Image *) NULL)    image=DestroyImageList(image);  for (i=0; i < (ssize_t) argc; i++)    argv[i]=DestroyString(argv[i]);  argv=(char **) RelinquishMagickMemory(argv);  return(status != 0 ? MagickTrue : MagickFalse);}
开发者ID:0xPr0xy,项目名称:ImageMagick,代码行数:101,



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


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