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

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

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

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

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

示例1: LoadFontConfigFonts

MagickExport MagickBooleanType LoadFontConfigFonts(SplayTreeInfo *type_list,  ExceptionInfo *exception){  char    extension[MaxTextExtent],    name[MaxTextExtent];  FcChar8    *family,    *file,    *style;  FcConfig    *font_config;  FcFontSet    *font_set;  FcObjectSet    *object_set;  FcPattern    *pattern;  FcResult    status;  int    slant,    width,    weight;  register long    i;  TypeInfo    *type_info;  /*    Load system fonts.  */  (void) exception;  font_config=FcInitLoadConfigAndFonts();  if (font_config == (FcConfig *) NULL)    return(MagickFalse);  font_set=(FcFontSet *) NULL;  object_set=FcObjectSetBuild(FC_FAMILY,FC_STYLE,FC_SLANT,FC_WIDTH,FC_WEIGHT,    FC_FILE,(char *) NULL);  if (object_set != (FcObjectSet *) NULL)    {      pattern=FcPatternCreate();      if (pattern != (FcPattern *) NULL)        {          font_set=FcFontList(0,pattern,object_set);          FcPatternDestroy(pattern);        }      FcObjectSetDestroy(object_set);    }  if (font_set == (FcFontSet *) NULL)    {      FcConfigDestroy(font_config);      return(MagickFalse);    }  for (i=0; i < (long) font_set->nfont; i++)  {    status=FcPatternGetString(font_set->fonts[i],FC_FAMILY,0,&family);    if (status != FcResultMatch)      continue;    status=FcPatternGetString(font_set->fonts[i],FC_FILE,0,&file);    if (status != FcResultMatch)      continue;    *extension='/0';    GetPathComponent((const char *) file,ExtensionPath,extension);    if ((*extension != '/0') && (LocaleCompare(extension,"gz") == 0))      continue;    type_info=(TypeInfo *) AcquireAlignedMemory(1,sizeof(*type_info));    if (type_info == (TypeInfo *) NULL)      continue;    (void) ResetMagickMemory(type_info,0,sizeof(*type_info));    type_info->path=ConstantString("System Fonts");    type_info->signature=MagickSignature;    (void) CopyMagickString(name,(const char *) family,MaxTextExtent);    (void) ConcatenateMagickString(name," ",MaxTextExtent);    status=FcPatternGetString(font_set->fonts[i],FC_STYLE,0,&style);    if (status == FcResultMatch)      (void) ConcatenateMagickString(name,(const char *) style,MaxTextExtent);    type_info->name=ConstantString(name);    (void) SubstituteString(&type_info->name," ","-");    (void) SubstituteString(&type_info->name,"-L-","-");    (void) SubstituteString(&type_info->name,"semicondensed","SemiCondensed");    type_info->family=ConstantString((const char *) family);    (void) SubstituteString(&type_info->family," L","");    status=FcPatternGetInteger(font_set->fonts[i],FC_SLANT,0,&slant);    type_info->style=NormalStyle;    if (slant == FC_SLANT_ITALIC)      type_info->style=ItalicStyle;    if (slant == FC_SLANT_OBLIQUE)      type_info->style=ObliqueStyle;    status=FcPatternGetInteger(font_set->fonts[i],FC_WIDTH,0,&width);    type_info->stretch=NormalStretch;//.........这里部分代码省略.........
开发者ID:0xPr0xy,项目名称:ImageMagick,代码行数:101,


示例2: GetPageGeometry

//.........这里部分代码省略.........      { "a1",  "1684x2384" },      { "a10", "73x105" },      { "a2",  "1191x1684" },      { "a3",  "842x1191" },      { "a4",  "595x842" },      { "a4smaLL", "595x842" },      { "a5",  "420x595" },      { "a6",  "297x420" },      { "a7",  "210x297" },      { "a8",  "148x210" },      { "a9",  "105x148" },      { "archa", "648x864" },      { "archb", "864x1296" },      { "archC", "1296x1728" },      { "archd", "1728x2592" },      { "arche", "2592x3456" },      { "b0",  "2920x4127" },      { "b1",  "2064x2920" },      { "b10", "91x127" },      { "b2",  "1460x2064" },      { "b3",  "1032x1460" },      { "b4",  "729x1032" },      { "b5",  "516x729" },      { "b6",  "363x516" },      { "b7",  "258x363" },      { "b8",  "181x258" },      { "b9",  "127x181" },      { "c0",  "2599x3676" },      { "c1",  "1837x2599" },      { "c2",  "1298x1837" },      { "c3",  "918x1296" },      { "c4",  "649x918" },      { "c5",  "459x649" },      { "c6",  "323x459" },      { "c7",  "230x323" },      { "executive", "540x720" },      { "flsa", "612x936" },      { "flse", "612x936" },      { "folio",  "612x936" },      { "halfletter", "396x612" },      { "isob0", "2835x4008" },      { "isob1", "2004x2835" },      { "isob10", "88x125" },      { "isob2", "1417x2004" },      { "isob3", "1001x1417" },      { "isob4", "709x1001" },      { "isob5", "499x709" },      { "isob6", "354x499" },      { "isob7", "249x354" },      { "isob8", "176x249" },      { "isob9", "125x176" },      { "jisb0", "1030x1456" },      { "jisb1", "728x1030" },      { "jisb2", "515x728" },      { "jisb3", "364x515" },      { "jisb4", "257x364" },      { "jisb5", "182x257" },      { "jisb6", "128x182" },      { "ledger",  "1224x792" },      { "legal",  "612x1008" },      { "letter", "612x792" },      { "lettersmaLL",  "612x792" },      { "quarto",  "610x780" },      { "statement",  "396x612" },      { "tabloid",  "792x1224" },      { (char *) NULL, (char *) NULL }    };  char    *page;  register ssize_t    i;  assert(page_geometry != (char *) NULL);  (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",page_geometry);  page=AcquireString(page_geometry);  for (i=0; *PageSizes[i] != (char *) NULL; i++)    if (LocaleNCompare(PageSizes[i][0],page,strlen(PageSizes[i][0])) == 0)      {        RectangleInfo          geometry;        MagickStatusType          flags;        /*          Replace mneumonic with the equivalent size in dots-per-inch.        */        (void) CopyMagickString(page,PageSizes[i][1],MaxTextExtent);        (void) ConcatenateMagickString(page,page_geometry+          strlen(PageSizes[i][0]),MaxTextExtent);        flags=GetGeometry(page,&geometry.x,&geometry.y,&geometry.width,          &geometry.height);        if ((flags & GreaterValue) == 0)          (void) ConcatenateMagickString(page,">",MaxTextExtent);        break;      }  return(page);}
开发者ID:0xPr0xy,项目名称:ImageMagick,代码行数:101,


示例3: GetGeometry

/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%                                                                             %%                                                                             %%                                                                             %%   G e t G e o m e t r y                                                     %%                                                                             %%                                                                             %%                                                                             %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  GetGeometry() parses a geometry specification and returns the width,%  height, x, and y values.  It also returns flags that indicates which%  of the four values (width, height, x, y) were located in the string, and%  whether the x or y values are negative.  In addition, there are flags to%  report any meta characters (%, !, <, or >).%%  The format of the GetGeometry method is:%%      MagickStatusType GetGeometry(const char *geometry,ssize_t *x,ssize_t *y,%        size_t *width,size_t *height)%%  A description of each parameter follows:%%    o geometry:  The geometry.%%    o x,y:  The x and y offset as determined by the geometry specification.%%    o width,height:  The width and height as determined by the geometry%      specification.%*/MagickExport MagickStatusType GetGeometry(const char *geometry,ssize_t *x,  ssize_t *y,size_t *width,size_t *height){  char    *p,    pedantic_geometry[MaxTextExtent],    *q;  double    value;  int    c;  MagickStatusType    flags;  /*    Remove whitespace and meta characters from geometry specification.  */  flags=NoValue;  if ((geometry == (char *) NULL) || (*geometry == '/0'))    return(flags);  if (strlen(geometry) >= (MaxTextExtent-1))    return(flags);  (void) CopyMagickString(pedantic_geometry,geometry,MaxTextExtent);  for (p=pedantic_geometry; *p != '/0'; )  {    if (isspace((int) ((unsigned char) *p)) != 0)      {        (void) CopyMagickString(p,p+1,MaxTextExtent);        continue;      }    c=(int) ((unsigned char) *p);    switch (c)    {      case '%':      {        flags|=PercentValue;        (void) CopyMagickString(p,p+1,MaxTextExtent);        break;      }      case '!':      {        flags|=AspectValue;        (void) CopyMagickString(p,p+1,MaxTextExtent);        break;      }      case '<':      {        flags|=LessValue;        (void) CopyMagickString(p,p+1,MaxTextExtent);        break;      }      case '>':      {        flags|=GreaterValue;        (void) CopyMagickString(p,p+1,MaxTextExtent);        break;      }      case '^':      {        flags|=MinimumValue;        (void) CopyMagickString(p,p+1,MaxTextExtent);        break;      }      case '@':      {//.........这里部分代码省略.........
开发者ID:0xPr0xy,项目名称:ImageMagick,代码行数:101,


示例4: ReadPCLImage

//.........这里部分代码省略.........            &bounds.x1,&bounds.y1,&bounds.x2,&bounds.y2);      }    if (count != 4)      continue;    /*      Set PCL render geometry.    */    width=(size_t) floor(bounds.x2-bounds.x1+0.5);    height=(size_t) floor(bounds.y2-bounds.y1+0.5);    if (width > page.width)      page.width=width;    if (height > page.height)      page.height=height;  }  (void) CloseBlob(image);  /*    Render PCL with the GhostPCL delegate.  */  if ((page.width == 0) || (page.height == 0))    (void) ParseAbsoluteGeometry(PSPageGeometry,&page);  if (image_info->page != (char *) NULL)    (void) ParseAbsoluteGeometry(image_info->page,&page);  (void) FormatLocaleString(geometry,MagickPathExtent,"%.20gx%.20g",(double)    page.width,(double) page.height);  if (image_info->monochrome != MagickFalse)    delegate_info=GetDelegateInfo("pcl:mono",(char *) NULL,exception);  else     if (cmyk != MagickFalse)       delegate_info=GetDelegateInfo("pcl:cmyk",(char *) NULL,exception);     else       delegate_info=GetDelegateInfo("pcl:color",(char *) NULL,exception);  if (delegate_info == (const DelegateInfo *) NULL)    return((Image *) NULL);  if ((page.width == 0) || (page.height == 0))    (void) ParseAbsoluteGeometry(PSPageGeometry,&page);  if (image_info->page != (char *) NULL)    (void) ParseAbsoluteGeometry(image_info->page,&page);  density=AcquireString("");  options=AcquireString("");  (void) FormatLocaleString(density,MagickPathExtent,"%gx%g",image->resolution.x,    image->resolution.y);  page.width=(size_t) floor(page.width*image->resolution.x/delta.x+0.5);  page.height=(size_t) floor(page.height*image->resolution.y/delta.y+0.5);  (void) FormatLocaleString(options,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,          "-dFirstPage=%.20g -dLastPage=%.20g",(double) read_info->scene+1,          (double) (read_info->scene+read_info->number_scenes));      read_info->number_scenes=0;      if (read_info->scenes != (char *) NULL)        *read_info->scenes='/0';    }  (void) CopyMagickString(filename,read_info->filename,MagickPathExtent);  (void) AcquireUniqueFilename(read_info->filename);  (void) FormatLocaleString(command,MagickPathExtent,    GetDelegateCommands(delegate_info),    read_info->antialias != MagickFalse ? 4 : 1,    read_info->antialias != MagickFalse ? 4 : 1,density,options,    read_info->filename,input_filename);  options=DestroyString(options);  density=DestroyString(density);  status=ExternalDelegateCommand(MagickFalse,read_info->verbose,command,    (char *) NULL,exception) != 0 ? MagickTrue : MagickFalse;  image=ReadImage(read_info,exception);  (void) RelinquishUniqueFileResource(read_info->filename);  (void) RelinquishUniqueFileResource(input_filename);  read_info=DestroyImageInfo(read_info);  if (image == (Image *) NULL)    ThrowReaderException(DelegateError,"PCLDelegateFailed");  if (LocaleCompare(image->magick,"BMP") == 0)    {      Image        *cmyk_image;      cmyk_image=ConsolidateCMYKImages(image,exception);      if (cmyk_image != (Image *) NULL)        {          image=DestroyImageList(image);          image=cmyk_image;        }    }  do  {    (void) CopyMagickString(image->filename,filename,MagickPathExtent);    image->page=page;    next_image=SyncNextImageInList(image);    if (next_image != (Image *) NULL)      image=next_image;  } while (next_image != (Image *) NULL);  return(GetFirstImageInList(image));}
开发者ID:278443820,项目名称:ImageMagick,代码行数:101,


示例5: ThrowReaderException

//.........这里部分代码省略.........  clone_info=CloneImageInfo(image_info);  if (clone_info->filename == NULL)    {      clone_info=DestroyImageInfo(clone_info);      ThrowReaderException(FileOpenWarning,"No filename specified");    }  if (LocaleCompare(image_info->magick,"XTRNFILE") == 0)    {      image=ReadImage(clone_info,exception);      CatchException(exception);    }  else if (LocaleCompare(image_info->magick,"XTRNIMAGE") == 0)    {      Image        **image_ptr;#ifdef ALL_IMAGEINFO      ImageInfo        **image_info_ptr;#endif      (void) sscanf(clone_info->filename,"%lx,%lx",&param1,&param2);      image_ptr=(Image **) param2;      if (*image_ptr != (Image *) NULL)        image=CloneImage(*image_ptr,0,0,MagickFalse,&(*image_ptr)->exception);#ifdef ALL_IMAGEINFO      image_info_ptr=(ImageInfo **) param1;      if (*image_info_ptr != (ImageInfo *) NULL)        image_info=*image_info_ptr;#endif    }  else if (LocaleCompare(image_info->magick,"XTRNBLOB") == 0)    {      char        **blob_data;      size_t        *blob_length;      char        filename[MaxTextExtent];      (void) sscanf(clone_info->filename,"%lx,%lx,%s",&param1,&param2,&filename);      blob_data=(char **) param1;      blob_length=(size_t *) param2;      image=BlobToImage(clone_info,*blob_data,*blob_length,exception);      CatchException(exception);    }  else if (LocaleCompare(image_info->magick,"XTRNARRAY") == 0)    {      char        *blob_data,        filename[MaxTextExtent];      HRESULT        hr;      long        lBoundl,        lBoundu;      SAFEARRAY        *pSafeArray;      size_t        blob_length;      *filename='/0';      (void) sscanf(clone_info->filename,"%lx,%s",&param1,&filename);      hr=S_OK;      pSafeArray=(SAFEARRAY *) param1;      if (pSafeArray)        {          hr = SafeArrayGetLBound(pSafeArray, 1, &lBoundl);          if (SUCCEEDED(hr))            {              hr = SafeArrayGetUBound(pSafeArray, 1, &lBoundu);              if (SUCCEEDED(hr))                {                  blob_length = lBoundu - lBoundl + 1;                  hr = SafeArrayAccessData(pSafeArray,(void**) &blob_data);                  if(SUCCEEDED(hr))                    {                      *clone_info->filename='/0';                      *clone_info->magick='/0';                      if (*filename != '/0')                        (void) CopyMagickString(clone_info->filename,filename,                          MaxTextExtent);                      image=BlobToImage(clone_info,blob_data,blob_length,                        exception);                      hr=SafeArrayUnaccessData(pSafeArray);                      CatchException(exception);                    }                 }            }        }    }  clone_info=DestroyImageInfo(clone_info);  return(image);}
开发者ID:CamiloBenavides,项目名称:SnoutPoint-Web,代码行数:101,


示例6: NTAcquireTypeCache

/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%                                                                             %%                                                                             %%                                                                             %%   N T A c q u i r e T y p e C a c h e                                       %%                                                                             %%                                                                             %%                                                                             %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  NTAcquireTypeCache() loads a Windows TrueType fonts.%%  The format of the NTAcquireTypeCache method is:%%      MagickBooleanType NTAcquireTypeCache(SplayTreeInfo *type_cache)%%  A description of each parameter follows:%%    o type_cache: A linked list of fonts.%*/MagickExport MagickBooleanType NTAcquireTypeCache(SplayTreeInfo *type_cache,  ExceptionInfo *exception){  HKEY    reg_key = (HKEY) INVALID_HANDLE_VALUE;  LONG    res;  int    list_entries = 0;  char    buffer[MagickPathExtent],    system_root[MagickPathExtent],    font_root[MagickPathExtent];  DWORD    type,    system_root_length;  MagickBooleanType    status;  /*    Try to find the right Windows*/CurrentVersion key, the SystemRoot and    then the Fonts key  */  res = RegOpenKeyExA (HKEY_LOCAL_MACHINE,    "SOFTWARE//Microsoft//Windows NT//CurrentVersion", 0, KEY_READ, &reg_key);  if (res == ERROR_SUCCESS) {    system_root_length=sizeof(system_root)-1;    res = RegQueryValueExA(reg_key,"SystemRoot",NULL, &type,      (BYTE*) system_root, &system_root_length);  }  if (res != ERROR_SUCCESS) {    res = RegOpenKeyExA (HKEY_LOCAL_MACHINE,      "SOFTWARE//Microsoft//Windows//CurrentVersion", 0, KEY_READ, &reg_key);    if (res == ERROR_SUCCESS) {      system_root_length=sizeof(system_root)-1;      res = RegQueryValueExA(reg_key,"SystemRoot",NULL, &type,        (BYTE*)system_root, &system_root_length);    }  }  if (res == ERROR_SUCCESS)    res = RegOpenKeyExA (reg_key, "Fonts",0, KEY_READ, &reg_key);  if (res != ERROR_SUCCESS)    return(MagickFalse);  *font_root='/0';  (void) CopyMagickString(buffer,system_root,MagickPathExtent);  (void) ConcatenateMagickString(buffer,"//fonts//arial.ttf",MagickPathExtent);  if (IsPathAccessible(buffer) != MagickFalse)    {      (void) CopyMagickString(font_root,system_root,MagickPathExtent);      (void) ConcatenateMagickString(font_root,"//fonts//",MagickPathExtent);    }  else    {      (void) CopyMagickString(font_root,system_root,MagickPathExtent);      (void) ConcatenateMagickString(font_root,"//",MagickPathExtent);    }  {    TypeInfo      *type_info;    DWORD      registry_index = 0,      type,      value_data_size,      value_name_length;    char      value_data[MagickPathExtent],      value_name[MagickPathExtent];    res = ERROR_SUCCESS;//.........这里部分代码省略.........
开发者ID:vcgato29,项目名称:ImageMagick,代码行数:101,


示例7: WritePICONImage

//.........这里部分代码省略.........          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;      symbol[j]=Cixel[k];    }    symbol[j]='/0';    (void) FormatLocaleString(buffer,MaxTextExtent,"/"%s c %s/",/n",       symbol,name);    (void) WriteBlobString(image,buffer);  }  /*    Define XPM pixels.  */  (void) WriteBlobString(image,"/* pixels *//n");  for (y=0; y < (ssize_t) picon->rows; y++)  {    p=GetVirtualPixels(picon,0,y,picon->columns,1,&picon->exception);    if (p == (const PixelPacket *) NULL)      break;    indexes=GetVirtualIndexQueue(picon);    (void) WriteBlobString(image,"/"");    for (x=0; x < (ssize_t) picon->columns; x++)    {      k=((ssize_t) GetPixelIndex(indexes+x) % MaxCixels);      symbol[0]=Cixel[k];      for (j=1; j < (ssize_t) characters_per_pixel; j++)      {        k=(((int) GetPixelIndex(indexes+x)-k)/MaxCixels) % MaxCixels;        symbol[j]=Cixel[k];      }      symbol[j]='/0';      (void) CopyMagickString(buffer,symbol,MaxTextExtent);      (void) WriteBlobString(image,buffer);    }    (void) FormatLocaleString(buffer,MaxTextExtent,"/"%s/n",      y == (ssize_t) (picon->rows-1) ? "" : ",");    (void) WriteBlobString(image,buffer);    status=SetImageProgress(image,SaveImageTag,(MagickOffsetType) y,      picon->rows);    if (status == MagickFalse)      break;  }  picon=DestroyImage(picon);  (void) WriteBlobString(image,"};/n");  (void) CloseBlob(image);  return(MagickTrue);}
开发者ID:mhorowitzgelb,项目名称:AprilTags,代码行数:101,


示例8: ReadHDRImage

//.........这里部分代码省略.........              *p++=c;            c=ReadBlobByte(image);          } while (isalnum(c) || (c == '_'));          *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];
开发者ID:ChaseReid,项目名称:ImageMagick,代码行数:67,


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


示例10: CompareImagesCommand

//.........这里部分代码省略.........                difference_image->page.y=offset.y;              }            composite_image=DestroyImage(composite_image);            page.width=reconstruct_image->columns;            page.height=reconstruct_image->rows;            page.x=offset.x;            page.y=offset.y;            distort_image=CropImage(image,&page,exception);            if (distort_image != (Image *) NULL)              {                Image                  *sans_image;                sans_image=CompareImages(distort_image,reconstruct_image,metric,                  &distortion,exception);                distort_image=DestroyImage(distort_image);                if (sans_image != (Image *) NULL)                  sans_image=DestroyImage(sans_image);              }          }        if (difference_image != (Image *) NULL)          {            AppendImageToList(&difference_image,similarity_image);            similarity_image=(Image *) NULL;          }      }  if (difference_image == (Image *) NULL)    status=0;  else    {      if (image_info->verbose != MagickFalse)        (void) IsImagesEqual(image,reconstruct_image,exception);      if (*difference_image->magick == '/0')        (void) CopyMagickString(difference_image->magick,image->magick,          MaxTextExtent);      if (image_info->verbose == MagickFalse)        {          switch (metric)          {            case FuzzErrorMetric:            case MeanAbsoluteErrorMetric:            case MeanSquaredErrorMetric:            case RootMeanSquaredErrorMetric:            case PeakAbsoluteErrorMetric:            {              (void) FormatLocaleFile(stderr,"%g (%g)",QuantumRange*distortion,                (double) distortion);              if ((reconstruct_image->columns != image->columns) ||                  (reconstruct_image->rows != image->rows))                (void) FormatLocaleFile(stderr," @ %.20g,%.20g",(double)                  difference_image->page.x,(double) difference_image->page.y);              break;            }            case AbsoluteErrorMetric:            case NormalizedCrossCorrelationErrorMetric:            case PeakSignalToNoiseRatioMetric:            {              (void) FormatLocaleFile(stderr,"%g",distortion);              if ((reconstruct_image->columns != image->columns) ||                  (reconstruct_image->rows != image->rows))                (void) FormatLocaleFile(stderr," @ %.20g,%.20g",(double)                  difference_image->page.x,(double) difference_image->page.y);              break;            }            case MeanErrorPerPixelMetric:            {
开发者ID:leoz,项目名称:ImageMagick,代码行数:67,


示例11: assert

/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%                                                                             %%                                                                             %%                                                                             %%   R e a d X C I m a g e                                                     %%                                                                             %%                                                                             %%                                                                             %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  ReadXCImage creates a constant image and initializes it to the%  X server color 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 ReadXCImage method is:%%      Image *ReadXCImage(const ImageInfo *image_info,ExceptionInfo *exception)%%  A description of each parameter follows:%%    o image:  The image.%%    o image_info: the image info.%%    o exception: return any errors or warnings in this structure.%*/static Image *ReadXCImage(const ImageInfo *image_info,ExceptionInfo *exception){  Image    *image;  IndexPacket    index,    *indexes;  MagickBooleanType    status;  MagickPixelPacket    color;  PixelPacket    pixel;  register ssize_t    x;  register PixelPacket    *q;  ssize_t    y;  /*    Initialize Image structure.  */  assert(image_info != (const ImageInfo *) NULL);  assert(image_info->signature == MagickSignature);  if (image_info->debug != MagickFalse)    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",      image_info->filename);  assert(exception != (ExceptionInfo *) NULL);  assert(exception->signature == MagickSignature);  image=AcquireImage(image_info);  if (image->columns == 0)    image->columns=1;  if (image->rows == 0)    image->rows=1;  status=SetImageExtent(image,image->columns,image->rows);  if (status == MagickFalse)    {      InheritException(exception,&image->exception);      return(DestroyImageList(image));    }  (void) CopyMagickString(image->filename,image_info->filename,MaxTextExtent);  status=QueryMagickColor((char *) image_info->filename,&color,exception);  if (status == MagickFalse)    {      image=DestroyImage(image);      return((Image *) NULL);    }  (void) SetImageColorspace(image,color.colorspace);  image->matte=color.matte;  (void) ResetMagickMemory(&pixel,0,sizeof(pixel));  index=0;  SetPixelPacket(image,&color,&pixel,&index);  for (y=0; y < (ssize_t) image->rows; y++)  {    q=QueueAuthenticPixels(image,0,y,image->columns,1,exception);    if (q == (PixelPacket *) NULL)      break;    for (x=0; x < (ssize_t) image->columns; x++)      *q++=pixel;    if (image->colorspace == CMYKColorspace)      {        indexes=GetAuthenticIndexQueue(image);        for (x=0; x < (ssize_t) image->columns; x++)//.........这里部分代码省略.........
开发者ID:INT2208-ST,项目名称:MyFriend,代码行数:101,


示例12: LoadCoderCache

/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%                                                                             %%                                                                             %%                                                                             %+   L o a d C o d e r L i s t                                                 %%                                                                             %%                                                                             %%                                                                             %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  LoadCoderCache() loads the coder configurations which provides a%  mapping between coder attributes and a coder name.%%  The format of the LoadCoderCache coder is:%%      MagickBooleanType LoadCoderCache(SplayTreeInfo *coder_cache,%        const char *xml,const char *filename,const size_t depth,%        ExceptionInfo *exception)%%  A description of each parameter follows:%%    o xml:  The coder list in XML format.%%    o filename:  The coder list filename.%%    o depth: depth of <include /> statements.%%    o exception: return any errors or warnings in this structure.%*/static MagickBooleanType LoadCoderCache(SplayTreeInfo *coder_cache,  const char *xml,const char *filename,const size_t depth,  ExceptionInfo *exception){  char    keyword[MaxTextExtent],    *token;  const char    *q;  CoderInfo    *coder_info;  MagickStatusType    status;  /*    Load the coder map file.  */  (void) LogMagickEvent(ConfigureEvent,GetMagickModule(),    "Loading coder configuration file /"%s/" ...",filename);  if (xml == (const char *) NULL)    return(MagickFalse);  status=MagickTrue;  coder_info=(CoderInfo *) NULL;  token=AcquireString(xml);  for (q=(char *) xml; *q != '/0'; )  {    /*      Interpret XML.    */    GetMagickToken(q,&q,token);    if (*token == '/0')      break;    (void) CopyMagickString(keyword,token,MaxTextExtent);    if (LocaleNCompare(keyword,"<!DOCTYPE",9) == 0)      {        /*          Doctype element.        */        while ((LocaleNCompare(q,"]>",2) != 0) && (*q != '/0'))          GetMagickToken(q,&q,token);        continue;      }    if (LocaleNCompare(keyword,"<!--",4) == 0)      {        /*          Comment element.        */        while ((LocaleNCompare(q,"->",2) != 0) && (*q != '/0'))          GetMagickToken(q,&q,token);        continue;      }    if (LocaleCompare(keyword,"<include") == 0)      {        /*          Include element.        */        while (((*token != '/') && (*(token+1) != '>')) && (*q != '/0'))        {          (void) CopyMagickString(keyword,token,MaxTextExtent);          GetMagickToken(q,&q,token);          if (*token != '=')            continue;          GetMagickToken(q,&q,token);          if (LocaleCompare(keyword,"file") == 0)            {              if (depth > 200)//.........这里部分代码省略.........
开发者ID:CamiloBenavides,项目名称:SnoutPoint-Web,代码行数:101,


示例13: WriteYCBCRImage

//.........这里部分代码省略.........        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;          length=ExportQuantumPixels(image,(const CacheView *) NULL,quantum_info,            BlueQuantum,pixels,&image->exception);          count=WriteBlob(image,length,pixels);          if (count != (ssize_t) length)            break;        }        if (image->previous == (Image *) NULL)          {            status=SetImageProgress(image,SaveImageTag,3,5);            if (status == MagickFalse)              break;          }        if (quantum_type == RGBAQuantum)          {            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;              length=ExportQuantumPixels(image,(const CacheView *) NULL,                quantum_info,AlphaQuantum,pixels,&image->exception);              count=WriteBlob(image,length,pixels);              if (count != (ssize_t) length)              break;            }          }        if (image_info->interlace == PartitionInterlace)          (void) CopyMagickString(image->filename,image_info->filename,            MaxTextExtent);        if (image->previous == (Image *) NULL)          {            status=SetImageProgress(image,SaveImageTag,5,5);            if (status == MagickFalse)              break;          }        break;      }      case PartitionInterlace:      {        /*          Partition interlacing:  YYYYYY..., CbCbCbCbCbCb..., CrCrCrCrCrCr...        */        AppendImageFormat("Y",image->filename);        status=OpenBlob(image_info,image,scene == 0 ? WriteBinaryBlobMode :          AppendBinaryBlobMode,&image->exception);        if (status == MagickFalse)          return(status);        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;          length=ExportQuantumPixels(image,(const CacheView *) NULL,quantum_info,            RedQuantum,pixels,&image->exception);          count=WriteBlob(image,length,pixels);          if (count != (ssize_t) length)            break;        }        if (image->previous == (Image *) NULL)          {
开发者ID:0xPr0xy,项目名称:ImageMagick,代码行数:67,


示例14: LoadTypeList

static MagickBooleanType LoadTypeList(const char *xml,const char *filename,  const unsigned long depth,ExceptionInfo *exception){  char    font_path[MaxTextExtent],    keyword[MaxTextExtent],    *token;  const char    *q;  MagickBooleanType    status;  TypeInfo    *type_info;  /*    Load the type map file.  */  (void) LogMagickEvent(ConfigureEvent,GetMagickModule(),    "Loading type configure file /"%s/" ...",filename);  if (xml == (const char *) NULL)    return(MagickFalse);  if (type_list == (SplayTreeInfo *) NULL)    {      type_list=NewSplayTree(CompareSplayTreeString,(void *(*)(void *)) NULL,        DestroyTypeNode);      if (type_list == (SplayTreeInfo *) NULL)        {          ThrowFileException(exception,ResourceLimitError,            "MemoryAllocationFailed",filename);          return(MagickFalse);        }    }  status=MagickTrue;  type_info=(TypeInfo *) NULL;  token=AcquireString(xml);#if defined(MAGICKCORE_WINDOWS_SUPPORT)  /*    Determine the Ghostscript font path.  */  *font_path='/0';  if (NTGhostscriptFonts(font_path,MaxTextExtent-2))    (void) ConcatenateMagickString(font_path,DirectorySeparator,MaxTextExtent);#endif  for (q=(char *) xml; *q != '/0'; )  {    /*      Interpret XML.    */    GetMagickToken(q,&q,token);    if (*token == '/0')      break;    (void) CopyMagickString(keyword,token,MaxTextExtent);    if (LocaleNCompare(keyword,"<!DOCTYPE",9) == 0)      {        /*          Doctype element.        */        while ((LocaleNCompare(q,"]>",2) != 0) && (*q != '/0'))          GetMagickToken(q,&q,token);        continue;      }    if (LocaleNCompare(keyword,"<!--",4) == 0)      {        /*          Comment element.        */        while ((LocaleNCompare(q,"->",2) != 0) && (*q != '/0'))          GetMagickToken(q,&q,token);        continue;      }    if (LocaleCompare(keyword,"<include") == 0)      {        /*          Include element.        */        while (((*token != '/') && (*(token+1) != '>')) && (*q != '/0'))        {          (void) CopyMagickString(keyword,token,MaxTextExtent);          GetMagickToken(q,&q,token);          if (*token != '=')            continue;          GetMagickToken(q,&q,token);          if (LocaleCompare(keyword,"file") == 0)            {              if (depth > 200)                (void) ThrowMagickException(exception,GetMagickModule(),                  ConfigureError,"IncludeNodeNestedTooDeeply","`%s'",token);              else                {                  char                    path[MaxTextExtent],                    *xml;                  ExceptionInfo                    *sans_exception;                  *path='/0';//.........这里部分代码省略.........
开发者ID:0xPr0xy,项目名称:ImageMagick,代码行数:101,


示例15: WriteJP2Image

//.........这里部分代码省略.........    map[i]=(unsigned short) ScaleQuantumToMap((Quantum)      ScaleQuantumToAny((Quantum) i,range));  if (map == (unsigned short *) NULL)    {      for (i=0; i < (long) number_components; i++)        jas_matrix_destroy(pixels[i]);      jas_image_destroy(jp2_image);      ThrowWriterException(ResourceLimitError,"MemoryAllocationFailed");    }  for (y=0; y < (long) image->rows; y++)  {    p=GetVirtualPixels(image,0,y,image->columns,1,&image->exception);    if (p == (const PixelPacket *) NULL)      break;    for (x=0; x < (long) image->columns; x++)    {      if (number_components == 1)        jas_matrix_setv(pixels[0],x,map[ScaleQuantumToMap(          PixelIntensityToQuantum(p))]);      else        {          jas_matrix_setv(pixels[0],x,map[ScaleQuantumToMap(p->red)]);          jas_matrix_setv(pixels[1],x,map[ScaleQuantumToMap(p->green)]);          jas_matrix_setv(pixels[2],x,map[ScaleQuantumToMap(p->blue)]);          if (number_components > 3)            jas_matrix_setv(pixels[3],x,map[ScaleQuantumToMap((Quantum)              (QuantumRange-p->opacity))]);        }      p++;    }    for (i=0; i < (long) 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,y,image->rows);    if (status == MagickFalse)      break;  }  map=(unsigned short *) RelinquishMagickMemory(map);  (void) CopyMagickString(magick,image_info->magick,MaxTextExtent);  LocaleLower(magick);  format=jas_image_strtofmt(magick);  options=(char *) NULL;  ResetImageOptionIterator(image_info);  key=GetNextImageOption(image_info);  while (key != (char *) NULL)  {    option=GetImageOption(image_info,key);    if (option != (const char *) NULL)      {        if (LocaleNCompare(key,"jp2:",4) == 0)          {            (void) ConcatenateString(&options,key+4);            if (*option != '/0')              {                (void) ConcatenateString(&options,"=");                (void) ConcatenateString(&options,option);              }            (void) ConcatenateString(&options," ");          }       }    key=GetNextImageOption(image_info);  }  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) FormatMagickString(option,MaxTextExtent,"rate=%g",rate);      (void) ConcatenateString(&options,option);    }  status=jas_image_encode(jp2_image,jp2_stream,format,options) != 0 ?    MagickTrue : MagickFalse;  (void) jas_stream_close(jp2_stream);  for (i=0; i < (long) 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,


示例16: WriteCINImage

static MagickBooleanType WriteCINImage(const ImageInfo *image_info,Image *image){  const char    *value;  CINInfo    cin;  const StringInfo    *profile;  MagickBooleanType    status;  MagickOffsetType    offset;  QuantumInfo    *quantum_info;  QuantumType    quantum_type;  register const PixelPacket    *p;  register ssize_t    i;  size_t    length;  ssize_t    count,    y;  struct tm    local_time;  time_t    seconds;  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 (image->colorspace != LogColorspace)    (void) TransformImageColorspace(image,LogColorspace);  /*    Write image information.  */  (void) ResetMagickMemory(&cin,0,sizeof(cin));  offset=0;  cin.file.magic=0x802A5FD7UL;  offset+=WriteBlobLong(image,(unsigned int) cin.file.magic);  cin.file.image_offset=0x800;  offset+=WriteBlobLong(image,(unsigned int) cin.file.image_offset);  cin.file.generic_length=0x400;  offset+=WriteBlobLong(image,(unsigned int) cin.file.generic_length);  cin.file.industry_length=0x400;  offset+=WriteBlobLong(image,(unsigned int) cin.file.industry_length);  cin.file.user_length=0x00;  profile=GetImageProfile(image,"dpx:user.data");  if (profile != (StringInfo *) NULL)    {      cin.file.user_length+=(size_t) GetStringInfoLength(profile);      cin.file.user_length=(((cin.file.user_length+0x2000-1)/0x2000)*0x2000);    }  offset+=WriteBlobLong(image,(unsigned int) cin.file.user_length);  cin.file.file_size=4*image->columns*image->rows+0x2000;  offset+=WriteBlobLong(image,(unsigned int) cin.file.file_size);  (void) CopyMagickString(cin.file.version,"V4.5",sizeof(cin.file.version));  offset+=WriteBlob(image,sizeof(cin.file.version),(unsigned char *)    cin.file.version);  value=GetCINProperty(image_info,image,"dpx:file.filename");  if (value != (const char *) NULL)    (void) CopyMagickString(cin.file.filename,value,sizeof(cin.file.filename));  else    (void) CopyMagickString(cin.file.filename,image->filename,      sizeof(cin.file.filename));  offset+=WriteBlob(image,sizeof(cin.file.filename),(unsigned char *)    cin.file.filename);  seconds=time((time_t *) NULL);#if defined(MAGICKCORE_HAVE_LOCALTIME_R)  (void) localtime_r(&seconds,&local_time);#else  (void) memcpy(&local_time,localtime(&seconds),sizeof(local_time));#endif  (void) strftime(cin.file.create_date,sizeof(cin.file.create_date),"%Y:%m:%d",//.........这里部分代码省略.........
开发者ID:UIKit0,项目名称:YoyaMagick,代码行数:101,


示例17: LoadMimeList

/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%                                                                             %%                                                                             %%                                                                             %+   L o a d M i m e L i s t                                                   %%                                                                             %%                                                                             %%                                                                             %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  LoadMimeList() loads the magic configuration file which provides a mapping%  between magic attributes and a magic name.%%  The format of the LoadMimeList method is:%%      MagickBooleanType LoadMimeList(const char *xml,const char *filename,%        const size_t depth,ExceptionInfo *exception)%%  A description of each parameter follows:%%    o xml:  The mime list in XML format.%%    o filename:  The mime list filename.%%    o depth: depth of <include /> statements.%%    o exception: return any errors or warnings in this structure.%*/static MagickBooleanType LoadMimeList(const char *xml,const char *filename,  const size_t depth,ExceptionInfo *exception){  const char    *attribute;  MimeInfo    *mime_info = (MimeInfo *) NULL;  MagickBooleanType    status;  XMLTreeInfo    *mime,    *mime_map,    *include;  /*    Load the mime map file.  */  (void) LogMagickEvent(ConfigureEvent,GetMagickModule(),    "Loading mime map /"%s/" ...",filename);  if (xml == (const char *) NULL)    return(MagickFalse);  if (mime_list == (LinkedListInfo *) NULL)    {      mime_list=NewLinkedList(0);      if (mime_list == (LinkedListInfo *) NULL)        {          ThrowFileException(exception,ResourceLimitError,            "MemoryAllocationFailed",filename);          return(MagickFalse);        }    }  mime_map=NewXMLTree(xml,exception);  if (mime_map == (XMLTreeInfo *) NULL)    return(MagickFalse);  status=MagickTrue;  include=GetXMLTreeChild(mime_map,"include");  while (include != (XMLTreeInfo *) NULL)  {    /*      Process include element.    */    attribute=GetXMLTreeAttribute(include,"file");    if (attribute != (const char *) NULL)      {        if (depth > 200)          (void) ThrowMagickException(exception,GetMagickModule(),            ConfigureError,"IncludeElementNestedTooDeeply","'%s'",filename);        else          {            char              path[MaxTextExtent],              *xml;            GetPathComponent(filename,HeadPath,path);            if (*path != '/0')              (void) ConcatenateMagickString(path,DirectorySeparator,                MaxTextExtent);            if (*attribute == *DirectorySeparator)              (void) CopyMagickString(path,attribute,MaxTextExtent);            else              (void) ConcatenateMagickString(path,attribute,MaxTextExtent);            xml=FileToString(path,~0,exception);            if (xml != (char *) NULL)              {                status=LoadMimeList(xml,path,depth+1,exception);                xml=DestroyString(xml);              }//.........这里部分代码省略.........
开发者ID:rickwangtw,项目名称:ImageMagick,代码行数:101,


示例18: ImportImageCommand

//.........这里部分代码省略.........  {    option=argv[i];    if (LocaleCompare(option,"(") == 0)      {        FireImageStack(MagickFalse,MagickTrue,pend);        if (k == MaxImageStackDepth)          ThrowImportException(OptionError,"ParenthesisNestedTooDeeply",            option);        PushImageStack();        continue;      }    if (LocaleCompare(option,")") == 0)      {        FireImageStack(MagickFalse,MagickTrue,MagickTrue);        if (k == 0)          ThrowImportException(OptionError,"UnableToParseExpression",option);        PopImageStack();        continue;      }    if (IsCommandOption(option) == MagickFalse)      {        Image          *images;        size_t          scene;        /*          Read image from X server.        */        FireImageStack(MagickFalse,MagickFalse,pend);        filename=argv[i];        if (target_window != (char *) NULL)          (void) CopyMagickString(image_info->filename,target_window,            MaxTextExtent);        for (scene=0; scene < (size_t) MagickMax(snapshots,1); scene++)        {          (void) sleep(resource_info.pause);          images=XImportImage(image_info,&ximage_info);          status&=(images != (Image *) NULL) &&            (exception->severity < ErrorException);          if (images == (Image *) NULL)            continue;          (void) CopyMagickString(images->filename,filename,MaxTextExtent);          (void) CopyMagickString(images->magick,"PS",MaxTextExtent);          images->scene=scene;          AppendImageStack(images);        }        continue;      }    pend=image != (Image *) NULL ? MagickTrue : MagickFalse;    switch(*(option+1))    {      case 'a':      {        if (LocaleCompare("adjoin",option+1) == 0)          break;        if (LocaleCompare("annotate",option+1) == 0)          {            if (*option == '+')              break;            i++;            if (i == (ssize_t) (argc-1))              ThrowImportException(OptionError,"MissingArgument",option);            if (IsGeometry(argv[i]) == MagickFalse)              ThrowImportInvalidArgumentException(option,argv[i]);
开发者ID:0xPr0xy,项目名称:ImageMagick,代码行数:67,


示例19: assert

//.........这里部分代码省略.........        active=active != MagickFalse ? MagickFalse : MagickTrue;      }    if (active != MagickFalse)      *q++=(*p);  }  *q='/0';  /*    Initialize image structure.  */  xpm_colors=NewSplayTree(CompareXPMColor,RelinquishMagickMemory,    (void *(*)(void *)) NULL);  if (AcquireImageColormap(image,image->colors) == MagickFalse)    {      xpm_buffer=DestroyString(xpm_buffer);      ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");    }  /*    Read image colormap.  */  image->depth=1;  next=NextXPMLine(xpm_buffer);  for (j=0; (j < (ssize_t) image->colors) && (next != (char *) NULL); j++)  {    MagickPixelPacket      pixel;    p=next;    next=NextXPMLine(p);    (void) CopyXPMColor(key,p,MagickMin((size_t) width,MaxTextExtent-1));    status=AddValueToSplayTree(xpm_colors,ConstantString(key),(void *) j);    /*      Parse color.    */    (void) CopyMagickString(target,"gray",MaxTextExtent);    q=ParseXPMColor(p+width,MagickTrue);    if (q != (char *) NULL)      {        while ((isspace((int) ((unsigned char) *q)) == 0) && (*q != '/0'))          q++;        if ((next-q) < 0)          break;        if (next != (char *) NULL)          (void) CopyXPMColor(target,q,MagickMin((size_t) (next-q),            MaxTextExtent-1));        else          (void) CopyMagickString(target,q,MaxTextExtent);        q=ParseXPMColor(target,MagickFalse);        if (q != (char *) NULL)          *q='/0';      }    StripString(target);    grey=strstr(target,"grey");    if (grey != (char *) NULL)      grey[2]='a';    if (LocaleCompare(target,"none") == 0)      {        image->storage_class=DirectClass;        image->matte=MagickTrue;      }    status=QueryColorCompliance(target,XPMCompliance,&image->colormap[j],      exception);    if (status == MagickFalse)      break;    (void) QueryMagickColorCompliance(target,XPMCompliance,&pixel,exception);    if (image->depth < pixel.depth)      image->depth=pixel.depth;
开发者ID:mhorowitzgelb,项目名称:AprilTags,代码行数:67,


示例20: WriteHTMLImage

/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%                                                                             %%                                                                             %%                                                                             %%   W r i t e H T M L I m a g e                                               %%                                                                             %%                                                                             %%                                                                             %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  WriteHTMLImage() writes an image in the HTML encoded image format.%%  The format of the WriteHTMLImage method is:%%      MagickBooleanType WriteHTMLImage(const ImageInfo *image_info,Image *image)%%  A description of each parameter follows.%%    o image_info: the image info.%%    o image:  The image.%%*/static MagickBooleanType WriteHTMLImage(const ImageInfo *image_info,  Image *image){  char    basename[MaxTextExtent],    buffer[MaxTextExtent],    filename[MaxTextExtent],    mapname[MaxTextExtent],    url[MaxTextExtent];  Image    *next;  ImageInfo    *write_info;  MagickBooleanType    status;  RectangleInfo    geometry;  register char    *p;  /*    Open image.  */  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_info->filename);  status=OpenBlob(image_info,image,WriteBinaryBlobMode,&image->exception);  if (status == MagickFalse)    return(status);  (void) CloseBlob(image);  if (IssRGBColorspace(image->colorspace) == MagickFalse)    (void) TransformImageColorspace(image,sRGBColorspace);  *url='/0';  if ((LocaleCompare(image_info->magick,"FTP") == 0) ||      (LocaleCompare(image_info->magick,"HTTP") == 0))    {      /*        Extract URL base from filename.      */      p=strrchr(image->filename,'/');      if (p != (char *) NULL)        {          p++;          (void) CopyMagickString(url,image_info->magick,MaxTextExtent);          (void) ConcatenateMagickString(url,":",MaxTextExtent);          url[strlen(url)+p-image->filename]='/0';          (void) ConcatenateMagickString(url,image->filename,            p-image->filename+2);          (void) CopyMagickString(image->filename,p,MaxTextExtent);        }    }  /*    Refer to image map file.  */  (void) CopyMagickString(filename,image->filename,MaxTextExtent);  AppendImageFormat("map",filename);  GetPathComponent(filename,BasePath,basename);  (void) CopyMagickString(mapname,basename,MaxTextExtent);  (void) CopyMagickString(image->filename,image_info->filename,MaxTextExtent);  (void) CopyMagickString(filename,image->filename,MaxTextExtent);  write_info=CloneImageInfo(image_info);  write_info->adjoin=MagickTrue;  status=MagickTrue;  if (LocaleCompare(image_info->magick,"SHTML") != 0)    {      const char//.........这里部分代码省略.........
开发者ID:0xPr0xy,项目名称:ImageMagick,代码行数:101,


示例21: WriteXPMImage

//.........这里部分代码省略.........                  {                    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,exception);    if (i == opacity)      (void) CopyMagickString(name,"None",MaxTextExtent);    /*      Write XPM color.    */    k=i % MaxCixels;    symbol[0]=Cixel[k];
开发者ID:mhorowitzgelb,项目名称:AprilTags,代码行数:67,


示例22: WriteMPCImage

/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%                                                                             %%                                                                             %%                                                                             %%   W r i t e M P C I m a g e                                                 %%                                                                             %%                                                                             %%                                                                             %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  WriteMPCImage() writes an Magick Persistent Cache image to a file.%%  The format of the WriteMPCImage method is:%%      MagickBooleanType WriteMPCImage(const ImageInfo *image_info,Image *image)%%  A description of each parameter follows:%%    o image_info: the image info.%%    o image: the image.%*/static MagickBooleanType WriteMPCImage(const ImageInfo *image_info,Image *image){  char    buffer[MaxTextExtent],    cache_filename[MaxTextExtent];  const char    *property,    *value;  MagickBooleanType    status;  MagickOffsetType    offset,    scene;  register long    i;  unsigned long    depth;  /*    Open persistent cache.  */  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) CopyMagickString(cache_filename,image->filename,MaxTextExtent);  AppendImageFormat("cache",cache_filename);  scene=0;  offset=0;  do  {    /*      Write persistent cache meta-information.    */    depth=GetImageQuantumDepth(image,MagickTrue);    if ((image->storage_class == PseudoClass) &&        (image->colors > (1UL << depth)))      image->storage_class=DirectClass;    (void) WriteBlobString(image,"id=MagickCache/n");    (void) FormatMagickString(buffer,MaxTextExtent,"quantum-depth=%d/n",      MAGICKCORE_QUANTUM_DEPTH);    (void) WriteBlobString(image,buffer);    (void) FormatMagickString(buffer,MaxTextExtent,      "class=%s  colors=%lu  matte=%s/n",MagickOptionToMnemonic(      MagickClassOptions,image->storage_class),image->colors,      MagickOptionToMnemonic(MagickBooleanOptions,(long) image->matte));    (void) WriteBlobString(image,buffer);    (void) FormatMagickString(buffer,MaxTextExtent,      "columns=%lu  rows=%lu  depth=%lu/n",image->columns,image->rows,      image->depth);    (void) WriteBlobString(image,buffer);    if (image->type != UndefinedType)      {        (void) FormatMagickString(buffer,MaxTextExtent,"type=%s/n",          MagickOptionToMnemonic(MagickTypeOptions,image->type));        (void) WriteBlobString(image,buffer);      }    if (image->colorspace != UndefinedColorspace)      {        (void) FormatMagickString(buffer,MaxTextExtent,"colorspace=%s/n",          MagickOptionToMnemonic(MagickColorspaceOptions,image->colorspace));        (void) WriteBlobString(image,buffer);      }    if (image->endian != UndefinedEndian)      {        (void) FormatMagickString(buffer,MaxTextExtent,"endian=%s/n",//.........这里部分代码省略.........
开发者ID:0xPr0xy,项目名称:ImageMagick,代码行数:101,


示例23: GetPathTemplate

static MagickBooleanType GetPathTemplate(char *path){  char    *directory;  ExceptionInfo    *exception;  MagickBooleanType    status;  register char    *p;  struct stat    attributes;  (void) CopyMagickString(path,"magick-XXXXXXXX",MaxTextExtent);  exception=AcquireExceptionInfo();  directory=(char *) GetImageRegistry(StringRegistryType,"temporary-path",    exception);  exception=DestroyExceptionInfo(exception);  if (directory == (char *) NULL)    directory=GetEnvironmentValue("MAGICK_TEMPORARY_PATH");  if (directory == (char *) NULL)    directory=GetEnvironmentValue("MAGICK_TMPDIR");  if (directory == (char *) NULL)    directory=GetPolicyValue("temporary-path");  if (directory == (char *) NULL)    directory=GetEnvironmentValue("TMPDIR");#if defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(__OS2__)  if (directory == (char *) NULL)    directory=GetEnvironmentValue("TMP");  if (directory == (char *) NULL)    directory=GetEnvironmentValue("TEMP");#endif#if defined(__VMS)  if (directory == (char *) NULL)    directory=GetEnvironmentValue("MTMPDIR");#endif#if defined(P_tmpdir)  if (directory == (char *) NULL)    directory=ConstantString(P_tmpdir);#endif  if (directory == (char *) NULL)    return(MagickTrue);  if (strlen(directory) > (MaxTextExtent-15))    {      directory=DestroyString(directory);      return(MagickTrue);    }  status=GetPathAttributes(directory,&attributes);  if ((status == MagickFalse) || !S_ISDIR(attributes.st_mode))    {      directory=DestroyString(directory);      return(MagickTrue);    }  if (directory[strlen(directory)-1] == *DirectorySeparator)    (void) FormatMagickString(path,MaxTextExtent,"%smagick-XXXXXXXX",directory);  else    (void) FormatMagickString(path,MaxTextExtent,"%s%smagick-XXXXXXXX",      directory,DirectorySeparator);  directory=DestroyString(directory);  if (*DirectorySeparator != '/')    for (p=path; *p != '/0'; p++)      if (*p == *DirectorySeparator)        *p='/';  return(MagickTrue);}
开发者ID:0xPr0xy,项目名称:ImageMagick,代码行数:69,


示例24: ReadMPCImage

/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%                                                                             %%                                                                             %%                                                                             %%   R e a d C A C H E I m a g e                                               %%                                                                             %%                                                                             %%                                                                             %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  ReadMPCImage() reads an Magick Persistent Cache 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 ReadMPCImage method is:%%      Image *ReadMPCImage(const ImageInfo *image_info,ExceptionInfo *exception)%%  Decompression code contributed by Kyle Shorter.%%  A description of each parameter follows:%%    o image_info: the image info.%%    o exception: return any errors or warnings in this structure.%*/static Image *ReadMPCImage(const ImageInfo *image_info,ExceptionInfo *exception){  char    cache_filename[MaxTextExtent],    id[MaxTextExtent],    keyword[MaxTextExtent],    *options;  const unsigned char    *p;  GeometryInfo    geometry_info;  Image    *image;  int    c;  LinkedListInfo    *profiles;  MagickBooleanType    status;  MagickOffsetType    offset;  MagickStatusType    flags;  register long    i;  size_t    length;  ssize_t    count;  StringInfo    *profile;  unsigned long    depth,    quantum_depth;  /*    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) CopyMagickString(cache_filename,image->filename,MaxTextExtent);  AppendImageFormat("cache",cache_filename);  c=ReadBlobByte(image);  if (c == EOF)    {      image=DestroyImage(image);      return((Image *) NULL);//.........这里部分代码省略.........
开发者ID:0xPr0xy,项目名称:ImageMagick,代码行数:101,


示例25: WriteXTRNImage

static MagickBooleanType WriteXTRNImage(const ImageInfo *image_info,  Image *image){  Image *    p;  ImageInfo    *clone_info;  int    scene;  MagickBooleanType    status;  void    *param1,    *param2,    *param3;  param1 = param2 = param3 = (void *) NULL;  status=MagickTrue;  if (LocaleCompare(image_info->magick,"XTRNFILE") == 0)    {      clone_info=CloneImageInfo(image_info);      *clone_info->magick='/0';      status=WriteImage(clone_info,image);      if (status == MagickFalse)        CatchImageException(image);      clone_info=DestroyImageInfo(clone_info);    }  else if (LocaleCompare(image_info->magick,"XTRNIMAGE") == 0)    {      Image        **image_ptr;      ImageInfo        **image_info_ptr;      clone_info=CloneImageInfo(image_info);      if (clone_info->filename[0])        {          (void) sscanf(clone_info->filename,"%lx,%lx",&param1,&param2);          image_info_ptr=(ImageInfo **) param1;          image_ptr=(Image **) param2;          if ((image_info_ptr != (ImageInfo **) NULL) &&              (image_ptr != (Image **) NULL))            {              *image_ptr=CloneImage(image,0,0,MagickFalse,&(image->exception));              *image_info_ptr=clone_info;            }        }    }  else if (LocaleCompare(image_info->magick,"XTRNBLOB") == 0)    {      char        **blob_data;      ExceptionInfo        *exception;      size_t        *blob_length;      char        filename[MaxTextExtent];      clone_info=CloneImageInfo(image_info);      if (clone_info->filename[0])        {          (void) sscanf(clone_info->filename,"%lx,%lx,%s",            &param1,&param2,&filename);          blob_data=(char **) param1;          blob_length=(size_t *) param2;          scene = 0;          (void) CopyMagickString(clone_info->filename,filename,MaxTextExtent);          for (p=image; p != (Image *) NULL; p=GetNextImageInList(p))          {            (void) CopyMagickString(p->filename,filename,MaxTextExtent);            p->scene=scene++;          }          SetImageInfo(clone_info,1,&image->exception);          (void) CopyMagickString(image->magick,clone_info->magick,            MaxTextExtent);          exception=AcquireExceptionInfo();          if (*blob_length == 0)            *blob_length=8192;          *blob_data=(char *) ImageToBlob(clone_info,image,blob_length,            exception);          exception=DestroyExceptionInfo(exception);          if (*blob_data == NULL)            status=MagickFalse;          if (status == MagickFalse)            CatchImageException(image);        }      clone_info=DestroyImageInfo(clone_info);    }  else if (LocaleCompare(image_info->magick,"XTRNARRAY") == 0)    {//.........这里部分代码省略.........
开发者ID:CamiloBenavides,项目名称:SnoutPoint-Web,代码行数:101,


示例26: WriteMPEGImage

//.........这里部分代码省略.........    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;        }        case 1:        {          blob=(unsigned char *) FileToBlob(previous_image,~0UL,&length,            &image->exception);        }        default:        {          (void) FormatLocaleString(filename,MaxTextExtent,"%s%.20g.%s",            basename,(double) p->scene,WriteMPEGIntermediateFormat);          if (length > 0)            status=BlobToFile(filename,blob,length,&image->exception);          break;        }      }      if (image->debug != MagickFalse)        {          if (status != MagickFalse)            (void) LogMagickEvent(CoderEvent,GetMagickModule(),              "%.20g. Wrote %s file for scene %.20g:",(double) i,              WriteMPEGIntermediateFormat,(double) p->scene);          else            (void) LogMagickEvent(CoderEvent,GetMagickModule(),              "%.20g. Failed to write %s file for scene %.20g:",(double) i,              WriteMPEGIntermediateFormat,(double) p->scene);          (void) LogMagickEvent(CoderEvent,GetMagickModule(),"%s",filename);        }    }    p->scene=scene;    if (blob != (unsigned char *) NULL)      blob=(unsigned char *) RelinquishMagickMemory(blob);    if (status == MagickFalse)      break;  }  /*    Convert JPEG to MPEG.  */  (void) CopyMagickString(coalesce_image->magick_filename,basename,    MaxTextExtent);  (void) CopyMagickString(coalesce_image->filename,basename,MaxTextExtent);  GetPathComponent(image_info->filename,ExtensionPath,coalesce_image->magick);  if (*coalesce_image->magick == '/0')    (void) CopyMagickString(coalesce_image->magick,image->magick,MaxTextExtent);  status=InvokeDelegate(write_info,coalesce_image,(char *) NULL,"mpeg:encode",    &image->exception);  (void) FormatLocaleString(write_info->filename,MaxTextExtent,"%s.%s",    write_info->unique,coalesce_image->magick);  status=CopyDelegateFile(write_info->filename,image->filename);  (void) RelinquishUniqueFileResource(write_info->filename);  write_info=DestroyImageInfo(write_info);  /*    Relinquish resources.  */  count=0;  for (p=coalesce_image; p != (Image *) NULL; p=GetNextImageInList(p))  {    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++)    {      (void) FormatLocaleString(p->filename,MaxTextExtent,"%s%.20g.%s",        basename,(double) count++,WriteMPEGIntermediateFormat);      (void) RelinquishUniqueFileResource(p->filename);    }    (void) CopyMagickString(p->filename,image_info->filename,MaxTextExtent);  }  (void) RelinquishUniqueFileResource(basename);  coalesce_image=DestroyImageList(coalesce_image);  if (image->debug != MagickFalse)    (void) LogMagickEvent(CoderEvent,GetMagickModule(),"exit");  return(status);}
开发者ID:CamiloBenavides,项目名称:SnoutPoint-Web,代码行数:101,


示例27: ParseGeometry

/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%                                                                             %%                                                                             %%                                                                             %%   P a r s e G e o m e t r y                                                 %%                                                                             %%                                                                             %%                                                                             %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  ParseGeometry() parses a geometry specification and returns the sigma,%  rho, xi, and psi values.  It also returns flags that indicates which%  of the four values (sigma, rho, xi, psi) were located in the string, and%  whether the xi or pi values are negative.%%  In addition, it reports if there are any of meta characters (%, !, <, >, @,%  and ^) flags present. It does not report the location of the percentage%  relative to the values.%%  The format of the ParseGeometry method is:%%      MagickStatusType ParseGeometry(const char *geometry,%        GeometryInfo *geometry_info)%%  A description of each parameter follows:%%    o geometry:  The geometry string (e.g. "100x100+10+10").%%    o geometry_info:  returns the parsed width/height/x/y in this structure.%*/MagickExport MagickStatusType ParseGeometry(const char *geometry,  GeometryInfo *geometry_info){  char    *p,    pedantic_geometry[MaxTextExtent],    *q;  double    value;  int    c;  MagickStatusType    flags;  /*    Remove whitespaces meta characters from geometry specification.  */  assert(geometry_info != (GeometryInfo *) NULL);  flags=NoValue;  if ((geometry == (char *) NULL) || (*geometry == '/0'))    return(flags);  if (strlen(geometry) >= (MaxTextExtent-1))    return(flags);  (void) CopyMagickString(pedantic_geometry,geometry,MaxTextExtent);  for (p=pedantic_geometry; *p != '/0'; )  {    if (isspace((int) ((unsigned char) *p)) != 0)      {        (void) CopyMagickString(p,p+1,MaxTextExtent);        continue;      }    c=(int) ((unsigned char) *p);    switch (c)    {      case '%':      {        flags|=PercentValue;        (void) CopyMagickString(p,p+1,MaxTextExtent);        break;      }      case '!':      {        flags|=AspectValue;        (void) CopyMagickString(p,p+1,MaxTextExtent);        break;      }      case '<':      {        flags|=LessValue;        (void) CopyMagickString(p,p+1,MaxTextExtent);        break;      }      case '>':      {        flags|=GreaterValue;        (void) CopyMagickString(p,p+1,MaxTextExtent);        break;      }      case '^':      {        flags|=MinimumValue;        (void) CopyMagickString(p,p+1,MaxTextExtent);        break;      }      case '@'://.........这里部分代码省略.........
开发者ID:0xPr0xy,项目名称:ImageMagick,代码行数:101,


示例28: StreamImageCommand

//.........这里部分代码省略.........      return(MagickFalse);    }  for (i=1; i < (ssize_t) (argc-1); i++)  {    option=argv[i];    if (LocaleCompare(option,"(") == 0)      {        FireImageStack(MagickFalse,MagickTrue,pend);        if (k == MaxImageStackDepth)          ThrowStreamException(OptionError,"ParenthesisNestedTooDeeply",option);        PushImageStack();        continue;      }    if (LocaleCompare(option,")") == 0)      {        FireImageStack(MagickFalse,MagickTrue,MagickTrue);        if (k == 0)          ThrowStreamException(OptionError,"UnableToParseExpression",option);        PopImageStack();        continue;      }    if (IsCommandOption(option) == MagickFalse)      {        Image          *images;        /*          Stream input image.        */        FireImageStack(MagickFalse,MagickFalse,pend);        filename=argv[i];        if ((LocaleCompare(filename,"--") == 0) && (i < (ssize_t) (argc-1)))          filename=argv[++i];        (void) CopyMagickString(image_info->filename,filename,MaxTextExtent);        images=StreamImage(image_info,stream_info,exception);        status&=(images != (Image *) NULL) &&          (exception->severity < ErrorException);        if (images == (Image *) NULL)          continue;        AppendImageStack(images);        continue;      }    pend=image != (Image *) NULL ? MagickTrue : MagickFalse;    switch (*(option+1))    {      case 'a':      {        if (LocaleCompare("authenticate",option+1) == 0)          {            if (*option == '+')              break;            i++;            if (i == (ssize_t) (argc-1))              ThrowStreamException(OptionError,"MissingArgument",option);            break;          }        ThrowStreamException(OptionError,"UnrecognizedOption",option)      }      case 'c':      {        if (LocaleCompare("cache",option+1) == 0)          {            if (*option == '+')              break;            i++;            if (i == (ssize_t) argc)
开发者ID:UIKit0,项目名称:YoyaMagick,代码行数:67,


示例29: assert

/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%                                                                             %%                                                                             %%                                                                             %%   R e a d X C I m a g e                                                     %%                                                                             %%                                                                             %%                                                                             %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  ReadXCImage creates a constant image and initializes it to the%  X server color 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 ReadXCImage method is:%%      Image *ReadXCImage(const ImageInfo *image_info,ExceptionInfo *exception)%%  A description of each parameter follows:%%    o image:  The image.%%    o image_info: the image info.%%    o exception: return any errors or warnings in this structure.%*/static Image *ReadXCImage(const ImageInfo *image_info,ExceptionInfo *exception){  Image    *image;  MagickBooleanType    status;  PixelInfo    pixel;  register ssize_t    x;  register Quantum    *q;  ssize_t    y;  /*    Initialize Image structure.  */  assert(image_info != (const ImageInfo *) NULL);  assert(image_info->signature == MagickSignature);  if (image_info->debug != MagickFalse)    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",      image_info->filename);  assert(exception != (ExceptionInfo *) NULL);  assert(exception->signature == MagickSignature);  image=AcquireImage(image_info,exception);  if (image->columns == 0)    image->columns=1;  if (image->rows == 0)    image->rows=1;  (void) CopyMagickString(image->filename,image_info->filename,MaxTextExtent);  if (*image_info->filename == '/0')    pixel=image->background_color;  else    {      status=QueryColorCompliance((char *) image_info->filename,AllCompliance,        &pixel,exception);      if (status == MagickFalse)        {          image=DestroyImage(image);          return((Image *) NULL);        }    }  (void) SetImageColorspace(image,pixel.colorspace,exception);  image->alpha_trait=pixel.alpha_trait;  for (y=0; y < (ssize_t) image->rows; y++)  {    q=QueueAuthenticPixels(image,0,y,image->columns,1,exception);    if (q == (Quantum *) NULL)      break;    for (x=0; x < (ssize_t) image->columns; x++)    {      SetPixelInfoPixel(image,&pixel,q);      q+=GetPixelChannels(image);    }    if (SyncAuthenticPixels(image,exception) == MagickFalse)      break;  }  return(GetFirstImageInList(image));}
开发者ID:Distrotech,项目名称:ImageMagick,代码行数:94,


示例30: WriteImage

/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%                                                                             %%                                                                             %%                                                                             %%   W r i t e I m a g e                                                       %%                                                                             %%                                                                             %%                                                                             %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  WriteImage() writes an image or an image sequence to a file or filehandle.%  If writing to a file on disk, the name is defined by the filename member of%  the image structure.  Write() returns MagickFalse is these is a memory%  shortage or if the image cannot be written.  Check the exception member of%  image to determine the cause for any failure.%%  The format of the WriteImage method is:%%      MagickBooleanType WriteImage(const ImageInfo *image_info,Image *image)%%  A description of each parameter follows:%%    o image_info: the image info.%%    o image: the image.%*/MagickExport MagickBooleanType WriteImage(const ImageInfo *image_info,  Image *image){  char    filename[MaxTextExtent];  const char    *option;  const DelegateInfo    *delegate_info;  const MagickInfo    *magick_info;  ExceptionInfo    *sans_exception;  ImageInfo    *write_info;  MagickBooleanType    status,    temporary;  MagickStatusType    thread_support;  PolicyDomain    domain;  PolicyRights    rights;  /*    Determine image type from filename prefix or suffix (e.g. image.jpg).  */  assert(image_info != (ImageInfo *) NULL);  assert(image_info->signature == MagickSignature);  if (image->debug != MagickFalse)    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",      image_info->filename);  assert(image != (Image *) NULL);  assert(image->signature == MagickSignature);  sans_exception=AcquireExceptionInfo();  write_info=CloneImageInfo(image_info);  (void) CopyMagickString(write_info->filename,image->filename,MaxTextExtent);  if (*write_info->magick == '/0')    (void) CopyMagickString(write_info->magick,image->magick,MaxTextExtent);  (void) SetImageInfo(write_info,1,sans_exception);  if (LocaleCompare(write_info->magick,"clipmask") == 0)    {      if (image->clip_mask == (Image *) NULL)        {          (void) ThrowMagickException(&image->exception,GetMagickModule(),            OptionError,"NoClipPathDefined","`%s'",image->filename);          return(MagickFalse);        }      image=image->clip_mask;      (void) SetImageInfo(write_info,1,sans_exception);    }  (void) CopyMagickString(filename,image->filename,MaxTextExtent);  (void) CopyMagickString(image->filename,write_info->filename,MaxTextExtent);  domain=CoderPolicyDomain;  rights=WritePolicyRights;  if (IsRightsAuthorized(domain,rights,write_info->magick) == MagickFalse)    {      sans_exception=DestroyExceptionInfo(sans_exception);      errno=EPERM;      ThrowBinaryException(PolicyError,"NotAuthorized",filename);    }  magick_info=GetMagickInfo(write_info->magick,sans_exception);//.........这里部分代码省略.........
开发者ID:0xPr0xy,项目名称:ImageMagick,代码行数:101,



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


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