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

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

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

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

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

示例1: NewImageViewRegion

/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%                                                                             %%                                                                             %%                                                                             %%   N e w I m a g e V i e w R e g i o n                                       %%                                                                             %%                                                                             %%                                                                             %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  NewImageViewRegion() returns a image view required for all other methods%  in the Image View API.%%  The format of the NewImageViewRegion method is:%%      ImageView *NewImageViewRegion(MagickCore *wand,const ssize_t x,%        const ssize_t y,const size_t width,const size_t height,%        ExceptionInfo *exception)%%  A description of each parameter follows:%%    o wand: the magick wand.%%    o x,y,columns,rows:  These values define the perimeter of a extent of%      pixel_wands view.%%    o exception: return any errors or warnings in this structure.%*/MagickExport ImageView *NewImageViewRegion(Image *image,const ssize_t x,  const ssize_t y,const size_t width,const size_t height,  ExceptionInfo *exception){  ImageView    *image_view;  assert(image != (Image *) NULL);  assert(image->signature == MagickSignature);  image_view=(ImageView *) AcquireMagickMemory(sizeof(*image_view));  if (image_view == (ImageView *) NULL)    ThrowFatalException(ResourceLimitFatalError,"MemoryAllocationFailed");  (void) ResetMagickMemory(image_view,0,sizeof(*image_view));  image_view->description=ConstantString("ImageView");  image_view->view=AcquireVirtualCacheView(image_view->image,exception);  image_view->image=image;  image_view->extent.width=width;  image_view->extent.height=height;  image_view->extent.x=x;  image_view->extent.y=y;  image_view->exception=AcquireExceptionInfo();  image_view->debug=IsEventLogging();  image_view->signature=MagickSignature;  return(image_view);}
开发者ID:rickwangtw,项目名称:ImageMagick,代码行数:55,


示例2: NewImageView

/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%                                                                             %%                                                                             %%                                                                             %%   N e w I m a g e V i e w                                                   %%                                                                             %%                                                                             %%                                                                             %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  NewImageView() returns a image view required for all other methods in the%  Image View API.%%  The format of the NewImageView method is:%%      ImageView *NewImageView(MagickCore *wand)%%  A description of each parameter follows:%%    o wand: the wand.%*/MagickExport ImageView *NewImageView(Image *image){  ImageView    *image_view;  assert(image != (Image *) NULL);  assert(image->signature == MagickSignature);  image_view=(ImageView *) AcquireMagickMemory(sizeof(*image_view));  if (image_view == (ImageView *) NULL)    ThrowFatalException(ResourceLimitFatalError,"MemoryAllocationFailed");  (void) ResetMagickMemory(image_view,0,sizeof(*image_view));  image_view->description=ConstantString("ImageView");  image_view->image=image;  image_view->exception=AcquireExceptionInfo();  image_view->view=AcquireVirtualCacheView(image_view->image,    image_view->exception);  image_view->extent.width=image->columns;  image_view->extent.height=image->rows;  image_view->extent.x=0;  image_view->extent.y=0;  image_view->number_threads=(size_t) GetMagickResourceLimit(ThreadResource);  image_view->debug=IsEventLogging();  image_view->signature=MagickSignature;  return(image_view);}
开发者ID:Babelz,项目名称:SaNi,代码行数:48,


示例3: NewWandViewExtent

/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%                                                                             %%                                                                             %%                                                                             %%   N e w W a n d V i e w E x t e n t                                         %%                                                                             %%                                                                             %%                                                                             %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  NewWandViewExtent() returns a wand view required for all other methods%  in the Wand View API.%%  The format of the NewWandViewExtent method is:%%      WandView *NewWandViewExtent(MagickWand *wand,const ssize_t x,%        const ssize_t y,const size_t width,const size_t height)%%  A description of each parameter follows:%%    o wand: the magick wand.%%    o x,y,columns,rows:  These values define the perimeter of a extent of%      pixel_wands view.%*/WandExport WandView *NewWandViewExtent(MagickWand *wand,const ssize_t x,  const ssize_t y,const size_t width,const size_t height){  WandView    *wand_view;  assert(wand != (MagickWand *) NULL);  assert(wand->signature == WandSignature);  wand_view=(WandView *) AcquireMagickMemory(sizeof(*wand_view));  if (wand_view == (WandView *) NULL)    ThrowWandFatalException(ResourceLimitFatalError,"MemoryAllocationFailed",      GetExceptionMessage(errno));  (void) ResetMagickMemory(wand_view,0,sizeof(*wand_view));  wand_view->id=AcquireWandId();  (void) FormatLocaleString(wand_view->name,MaxTextExtent,"%s-%.20g",    WandViewId,(double) wand_view->id);  wand_view->description=ConstantString("WandView");  wand_view->exception=AcquireExceptionInfo();  wand_view->view=AcquireVirtualCacheView(wand_view->wand->images,    wand_view->exception);  wand_view->wand=wand;  wand_view->extent.width=width;  wand_view->extent.height=height;  wand_view->extent.x=x;  wand_view->extent.y=y;  wand_view->number_threads=GetOpenMPMaximumThreads();  wand_view->pixel_wands=AcquirePixelsThreadSet(wand_view->extent.width,    wand_view->number_threads);  if (wand_view->pixel_wands == (PixelWand ***) NULL)    ThrowWandFatalException(ResourceLimitFatalError,"MemoryAllocationFailed",      GetExceptionMessage(errno));  wand_view->debug=IsEventLogging();  wand_view->signature=WandSignature;  return(wand_view);}
开发者ID:Arise,项目名称:Open-DPI-Detector,代码行数:62,


示例4: NewPixelRegionIterator

/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%                                                                             %%                                                                             %%                                                                             %%   N e w P i x e l R e g i o n I t e r a t o r                               %%                                                                             %%                                                                             %%                                                                             %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  NewPixelRegionIterator() returns a new pixel iterator.%%  The format of the NewPixelRegionIterator method is:%%      PixelIterator *NewPixelRegionIterator(MagickWand *wand,const ssize_t x,%        const ssize_t y,const size_t width,const size_t height)%%  A description of each parameter follows:%%    o wand: the magick wand.%%    o x,y,columns,rows:  These values define the perimeter of a region of%      pixels.%*/WandExport PixelIterator *NewPixelRegionIterator(MagickWand *wand,  const ssize_t x,const ssize_t y,const size_t width,const size_t height){  CacheView    *view;  const char    *quantum;  ExceptionInfo    *exception;  Image    *image;  PixelIterator    *iterator;  size_t    depth;  assert(wand != (MagickWand *) NULL);  depth=MAGICKCORE_QUANTUM_DEPTH;  quantum=GetMagickQuantumDepth(&depth);  if (depth != MAGICKCORE_QUANTUM_DEPTH)    ThrowWandFatalException(WandError,"QuantumDepthMismatch",quantum);  if ((width == 0) || (width == 0))    ThrowWandFatalException(WandError,"ZeroRegionSize",quantum);  image=GetImageFromMagickWand(wand);  if (image == (Image *) NULL)    return((PixelIterator *) NULL);  exception=AcquireExceptionInfo();  view=AcquireVirtualCacheView(image,exception);  if (view == (CacheView *) NULL)    return((PixelIterator *) NULL);  iterator=(PixelIterator *) AcquireMagickMemory(sizeof(*iterator));  if (iterator == (PixelIterator *) NULL)    ThrowWandFatalException(ResourceLimitFatalError,"MemoryAllocationFailed",      wand->name);  (void) ResetMagickMemory(iterator,0,sizeof(*iterator));  iterator->id=AcquireWandId();  (void) FormatLocaleString(iterator->name,MaxTextExtent,"%s-%.20g",    PixelIteratorId,(double) iterator->id);  iterator->exception=exception;  iterator->view=view;  SetGeometry(image,&iterator->region);  iterator->region.width=width;  iterator->region.height=height;  iterator->region.x=x;  iterator->region.y=y;  iterator->pixel_wands=NewPixelWands(iterator->region.width);  iterator->y=0;  iterator->debug=IsEventLogging();  if (iterator->debug != MagickFalse)    (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",iterator->name);  iterator->signature=WandSignature;  return(iterator);}
开发者ID:0xPr0xy,项目名称:ImageMagick,代码行数:84,


示例5: IsImageGray

/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%                                                                             %%                                                                             %%                                                                             %%     I s I m a g e G r a y                                                   %%                                                                             %%                                                                             %%                                                                             %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  IsImageGray() returns MagickTrue if all the pixels in the image have the%  same red, green, and blue intensities.%%  The format of the IsImageGray method is:%%      MagickBooleanType IsImageGray(const Image *image,%        ExceptionInfo *exception)%%  A description of each parameter follows:%%    o image: the image.%%    o exception: return any errors or warnings in this structure.%*/MagickExport MagickBooleanType IsImageGray(const Image *image,  ExceptionInfo *exception){  CacheView    *image_view;  ImageType    type;  register const Quantum    *p;  register ssize_t    x;  ssize_t    y;  assert(image != (Image *) NULL);  assert(image->signature == MagickSignature);  if (image->debug != MagickFalse)    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);  if ((image->type == BilevelType) || (image->type == GrayscaleType) ||      (image->type == GrayscaleMatteType))    return(MagickTrue);  if ((IsGrayColorspace(image->colorspace) == MagickFalse) &&      (IssRGBCompatibleColorspace(image->colorspace) == MagickFalse))    return(MagickFalse);  type=BilevelType;  image_view=AcquireVirtualCacheView(image,exception);  for (y=0; y < (ssize_t) image->rows; y++)  {    p=GetCacheViewVirtualPixels(image_view,0,y,image->columns,1,exception);    if (p == (const Quantum *) NULL)      break;    for (x=0; x < (ssize_t) image->columns; x++)    {      if (IsPixelGray(image,p) == MagickFalse)        {          type=UndefinedType;          break;        }      if ((type == BilevelType) &&          (IsPixelMonochrome(image,p) == MagickFalse))        type=GrayscaleType;      p+=GetPixelChannels(image);    }    if (type == UndefinedType)      break;  }  image_view=DestroyCacheView(image_view);  if (type == UndefinedType)    return(MagickFalse);  ((Image *) image)->type=type;  if ((type == GrayscaleType) && (image->alpha_trait == BlendPixelTrait))    ((Image *) image)->type=GrayscaleMatteType;  return(SetImageColorspace((Image *) image,GRAYColorspace,exception));}
开发者ID:epu,项目名称:ImageMagick,代码行数:84,


示例6: AcquireAuthenticCacheView

/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%                                                                             %%                                                                             %%                                                                             %%   A c q u i r e A u t h e n t i c C a c h e V i e w                         %%                                                                             %%                                                                             %%                                                                             %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  AcquireAuthenticCacheView() acquires an authentic view into the pixel cache.%  It always succeeds but may return a warning or informational exception.%%  The format of the AcquireAuthenticCacheView method is:%%      CacheView *AcquireAuthenticCacheView(const Image *image,%        ExceptionInfo *exception)%%  A description of each parameter follows:%%    o image: the image.%%    o exception: return any errors or warnings in this structure.%*/MagickExport CacheView *AcquireAuthenticCacheView(const Image *image,  ExceptionInfo *exception){  CacheView    *magick_restrict cache_view;  cache_view=AcquireVirtualCacheView(image,exception);  return(cache_view);}
开发者ID:ImageMagick,项目名称:ImageMagick,代码行数:35,


示例7: AcquireAuthenticCacheView

/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%                                                                             %%                                                                             %%                                                                             %%   A c q u i r e A u t h e n t i c C a c h e V i e w                         %%                                                                             %%                                                                             %%                                                                             %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  AcquireAuthenticCacheView() acquires an authentic view into the pixel cache.%%  The format of the AcquireAuthenticCacheView method is:%%      CacheView *AcquireAuthenticCacheView(const Image *image,%        ExceptionInfo *exception)%%  A description of each parameter follows:%%    o image: the image.%%    o exception: return any errors or warnings in this structure.%*/MagickExport CacheView *AcquireAuthenticCacheView(const Image *image,  ExceptionInfo *exception){  CacheView    *restrict cache_view;  cache_view=AcquireVirtualCacheView(image,exception);  (void) SyncImagePixelCache(cache_view->image,exception);  return(cache_view);}
开发者ID:divyasnair123,项目名称:vegetable_store,代码行数:35,


示例8: _image

Magick::Pixels::Pixels(Magick::Image &image_)  : _image(image_),    _x(0),    _y(0),    _columns(0),    _rows(0){  GetPPException;  _view=AcquireVirtualCacheView(image_.image(),exceptionInfo);  ThrowPPException(image_.quiet());}
开发者ID:CamiloBenavides,项目名称:SnoutPoint-Web,代码行数:11,


示例9: _image

Magick::Pixels::Pixels(Magick::Image &image_)  : _image(image_),    _view(AcquireVirtualCacheView(_image.image(),&_exception)),    _x(0),    _y(0),    _columns(0),    _rows(0){  GetExceptionInfo(&_exception);  if (!_view)    _image.throwImageException();}
开发者ID:AlexiaChen,项目名称:ImageMagick_Cmake,代码行数:13,


示例10: AcquireAuthenticCacheView

/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%                                                                             %%                                                                             %%                                                                             %%   A c q u i r e A u t h e n t i c C a c h e V i e w                         %%                                                                             %%                                                                             %%                                                                             %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  AcquireAuthenticCacheView() acquires an authentic view into the pixel cache.%%  The format of the AcquireAuthenticCacheView method is:%%      CacheView *AcquireAuthenticCacheView(const Image *image,%        ExceptionInfo *exception)%%  A description of each parameter follows:%%    o image: the image.%%    o exception: return any errors or warnings in this structure.%*/MagickExport CacheView *AcquireAuthenticCacheView(const Image *image,  ExceptionInfo *exception){  CacheView    *cache_view;  MagickBooleanType    status;  cache_view=AcquireVirtualCacheView(image,exception);  status=SyncImagePixelCache(cache_view->image,exception);  if (status == MagickFalse)    ThrowFatalException(CacheFatalError,"UnableToAcquireCacheView");  return(cache_view);}
开发者ID:0xPr0xy,项目名称:ImageMagick,代码行数:40,


示例11: IsImageOpaque

/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%                                                                             %%                                                                             %%                                                                             %%     I s I m a g e O p a q u e                                               %%                                                                             %%                                                                             %%                                                                             %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  IsImageOpaque() returns MagickTrue if none of the pixels in the image have%  an alpha value other than OpaqueAlpha (QuantumRange).%%  Will return true immediatally is alpha channel is not available.%%  The format of the IsImageOpaque method is:%%      MagickBooleanType IsImageOpaque(const Image *image,%        ExceptionInfo *exception)%%  A description of each parameter follows:%%    o image: the image.%%    o exception: return any errors or warnings in this structure.%*/MagickExport MagickBooleanType IsImageOpaque(const Image *image,  ExceptionInfo *exception){  CacheView    *image_view;  register const Quantum    *p;  register ssize_t    x;  ssize_t    y;  /*    Determine if image is opaque.  */  assert(image != (Image *) NULL);  assert(image->signature == MagickSignature);  if (image->debug != MagickFalse)    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);  if (image->alpha_trait != BlendPixelTrait)    return(MagickTrue);  image_view=AcquireVirtualCacheView(image,exception);  for (y=0; y < (ssize_t) image->rows; y++)  {    p=GetCacheViewVirtualPixels(image_view,0,y,image->columns,1,exception);    if (p == (const Quantum *) NULL)      break;    for (x=0; x < (ssize_t) image->columns; x++)    {      if (GetPixelAlpha(image,p) != OpaqueAlpha)        break;      p+=GetPixelChannels(image);    }    if (x < (ssize_t) image->columns)     break;  }  image_view=DestroyCacheView(image_view);  return(y < (ssize_t) image->rows ? MagickFalse : MagickTrue);}
开发者ID:epu,项目名称:ImageMagick,代码行数:70,


示例12: CombineImages

//.........这里部分代码省略.........  */  assert(image != (const 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);  combine_image=CloneImage(image,0,0,MagickTrue,exception);  if (combine_image == (Image *) NULL)    return((Image *) NULL);  if (SetImageStorageClass(combine_image,DirectClass,exception) == MagickFalse)    {      combine_image=DestroyImage(combine_image);      return((Image *) NULL);    }  (void) SetImageColorspace(combine_image,colorspace,exception);  if ((GetPixelAlphaTraits(image) & UpdatePixelTrait) != 0)    combine_image->alpha_trait=BlendPixelTrait;  /*    Combine images.  */  status=MagickTrue;  progress=0;  combine_view=AcquireAuthenticCacheView(combine_image,exception);  for (y=0; y < (ssize_t) combine_image->rows; y++)  {    CacheView      *image_view;    const Image      *next;    Quantum      *pixels;    register const Quantum      *restrict p;    register Quantum      *restrict q;    register ssize_t      i;    if (status == MagickFalse)      continue;    pixels=GetCacheViewAuthenticPixels(combine_view,0,y,combine_image->columns,      1,exception);    if (pixels == (Quantum *) NULL)      {        status=MagickFalse;        continue;      }    next=image;    for (i=0; i < (ssize_t) GetPixelChannels(combine_image); i++)    {      register ssize_t        x;      PixelChannel channel=GetPixelChannelChannel(combine_image,i);      PixelTrait traits=GetPixelChannelTraits(combine_image,channel);      if (traits == UndefinedPixelTrait)        continue;      if (next == (Image *) NULL)        continue;      image_view=AcquireVirtualCacheView(next,exception);      p=GetCacheViewVirtualPixels(image_view,0,y,next->columns,1,exception);      if (p == (const Quantum *) NULL)        continue;      q=pixels;      for (x=0; x < (ssize_t) combine_image->columns; x++)      {        if (x < (ssize_t) next->columns)          {            q[i]=GetPixelGray(next,p);            p+=GetPixelChannels(next);          }        q+=GetPixelChannels(combine_image);      }      image_view=DestroyCacheView(image_view);      next=GetNextImageInList(next);    }    if (SyncCacheViewAuthenticPixels(combine_view,exception) == MagickFalse)      status=MagickFalse;    if (image->progress_monitor != (MagickProgressMonitor) NULL)      {        MagickBooleanType          proceed;        proceed=SetImageProgress(image,CombineImageTag,progress++,          combine_image->rows);        if (proceed == MagickFalse)          status=MagickFalse;      }  }  combine_view=DestroyCacheView(combine_view);  if (status == MagickFalse)    combine_image=DestroyImage(combine_image);  return(combine_image);}
开发者ID:saitoha,项目名称:ImageMagick-V7-SIXEL,代码行数:101,


示例13: GetImageDepth

//.........这里部分代码省略.........        {          MagickStatusType            status;          QuantumAny            range;          status=0;          range=GetQuantumRange(current_depth[id]);          if ((GetPixelRedTraits(image) & UpdatePixelTrait) != 0)            status|=ClampToQuantum(image->colormap[i].red) !=              ScaleAnyToQuantum(ScaleQuantumToAny(ClampToQuantum(              image->colormap[i].red),range),range);          if ((GetPixelGreenTraits(image) & UpdatePixelTrait) != 0)            status|=ClampToQuantum(image->colormap[i].green) !=              ScaleAnyToQuantum(ScaleQuantumToAny(ClampToQuantum(              image->colormap[i].green),range),range);          if ((GetPixelBlueTraits(image) & UpdatePixelTrait) != 0)            status|=ClampToQuantum(image->colormap[i].blue) !=              ScaleAnyToQuantum(ScaleQuantumToAny(ClampToQuantum(              image->colormap[i].blue),range),range);          if (status == 0)            break;          current_depth[id]++;        }      }      depth=current_depth[0];      for (id=1; id < (ssize_t) number_threads; id++)        if (depth < current_depth[id])          depth=current_depth[id];      current_depth=(size_t *) RelinquishMagickMemory(current_depth);      return(depth);    }  image_view=AcquireVirtualCacheView(image,exception);#if !defined(MAGICKCORE_HDRI_SUPPORT)  if (QuantumRange <= MaxMap)    {      register ssize_t        i;      size_t        *depth_map;      /*        Scale pixels to desired (optimized with depth map).      */      depth_map=(size_t *) AcquireQuantumMemory(MaxMap+1,sizeof(*depth_map));      if (depth_map == (size_t *) NULL)        ThrowFatalException(ResourceLimitFatalError,"MemoryAllocationFailed");      for (i=0; i <= (ssize_t) MaxMap; i++)      {        unsigned int          depth;        for (depth=1; depth < MAGICKCORE_QUANTUM_DEPTH; depth++)        {          Quantum            pixel;          QuantumAny            range;          range=GetQuantumRange(depth);          pixel=(Quantum) i;          if (pixel == ScaleAnyToQuantum(ScaleQuantumToAny(pixel,range),range))            break;
开发者ID:epu,项目名称:ImageMagick,代码行数:67,


示例14: FloodfillPaintImage

//.........这里部分代码省略.........      (draw_info->fill.alpha_trait != UndefinedPixelTrait))    (void) SetImageAlpha(image,OpaqueAlpha,exception);  /*    Set floodfill state.  */  floodplane_image=CloneImage(image,image->columns,image->rows,MagickTrue,    exception);  if (floodplane_image == (Image *) NULL)    return(MagickFalse);  floodplane_image->alpha_trait=UndefinedPixelTrait;  floodplane_image->colorspace=GRAYColorspace;  (void) QueryColorCompliance("#000",AllCompliance,    &floodplane_image->background_color,exception);  (void) SetImageBackgroundColor(floodplane_image,exception);  segment_info=AcquireVirtualMemory(MaxStacksize,sizeof(*segment_stack));  if (segment_info == (MemoryInfo *) NULL)    {      floodplane_image=DestroyImage(floodplane_image);      ThrowBinaryException(ResourceLimitError,"MemoryAllocationFailed",        image->filename);    }  segment_stack=(SegmentInfo *) GetVirtualMemoryBlob(segment_info);  /*    Push initial segment on stack.  */  status=MagickTrue;  x=x_offset;  y=y_offset;  start=0;  s=segment_stack;  PushSegmentStack(y,x,x,1);  PushSegmentStack(y+1,x,x,-1);  GetPixelInfo(image,&pixel);  image_view=AcquireVirtualCacheView(image,exception);  floodplane_view=AcquireAuthenticCacheView(floodplane_image,exception);  while (s > segment_stack)  {    register const Quantum      *restrict p;    register Quantum      *restrict q;    register ssize_t      x;    /*      Pop segment off stack.    */    s--;    x1=(ssize_t) s->x1;    x2=(ssize_t) s->x2;    offset=(ssize_t) s->y2;    y=(ssize_t) s->y1+offset;    /*      Recolor neighboring pixels.    */    p=GetCacheViewVirtualPixels(image_view,0,y,(size_t) (x1+1),1,exception);    q=GetCacheViewAuthenticPixels(floodplane_view,0,y,(size_t) (x1+1),1,      exception);    if ((p == (const Quantum *) NULL) || (q == (Quantum *) NULL))      break;    p+=x1*GetPixelChannels(image);    q+=x1*GetPixelChannels(floodplane_image);    for (x=x1; x >= 0; x--)    {
开发者ID:eulerhit,项目名称:ImageMagick,代码行数:67,


示例15: assert

MagickExport Image *OilPaintImage(const Image *image,const double radius,  const double sigma,ExceptionInfo *exception){#define NumberPaintBins  256#define OilPaintImageTag  "OilPaint/Image"  CacheView    *image_view,    *paint_view;  Image    *linear_image,    *paint_image;  MagickBooleanType    status;  MagickOffsetType    progress;  size_t    **histograms,    width;  ssize_t    center,    y;  /*    Initialize painted image attributes.  */  assert(image != (const 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);  width=GetOptimalKernelWidth2D(radius,sigma);  linear_image=CloneImage(image,0,0,MagickTrue,exception);  paint_image=CloneImage(image,image->columns,image->rows,MagickTrue,exception);  if ((linear_image == (Image *) NULL) || (paint_image == (Image *) NULL))    {      if (linear_image != (Image *) NULL)        linear_image=DestroyImage(linear_image);      if (paint_image != (Image *) NULL)        linear_image=DestroyImage(paint_image);      return((Image *) NULL);    }  if (SetImageStorageClass(paint_image,DirectClass,exception) == MagickFalse)    {      linear_image=DestroyImage(linear_image);      paint_image=DestroyImage(paint_image);      return((Image *) NULL);    }  histograms=AcquireHistogramThreadSet(NumberPaintBins);  if (histograms == (size_t **) NULL)    {      linear_image=DestroyImage(linear_image);      paint_image=DestroyImage(paint_image);      ThrowImageException(ResourceLimitError,"MemoryAllocationFailed");    }  /*    Oil paint image.  */  status=MagickTrue;  progress=0;  center=(ssize_t) GetPixelChannels(linear_image)*(linear_image->columns+width)*    (width/2L)+GetPixelChannels(linear_image)*(width/2L);  image_view=AcquireVirtualCacheView(linear_image,exception);  paint_view=AcquireAuthenticCacheView(paint_image,exception);#if defined(MAGICKCORE_OPENMP_SUPPORT)  #pragma omp parallel for schedule(static,4) shared(progress,status) /    magick_threads(linear_image,paint_image,linear_image->rows,1)#endif  for (y=0; y < (ssize_t) linear_image->rows; y++)  {    register const Quantum      *restrict p;    register Quantum      *restrict q;    register size_t      *histogram;    register ssize_t      x;    if (status == MagickFalse)      continue;    p=GetCacheViewVirtualPixels(image_view,-((ssize_t) width/2L),y-(ssize_t)      (width/2L),linear_image->columns+width,width,exception);    q=QueueCacheViewAuthenticPixels(paint_view,0,y,paint_image->columns,1,      exception);    if ((p == (const Quantum *) NULL) || (q == (Quantum *) NULL))      {        status=MagickFalse;        continue;      }    histogram=histograms[GetOpenMPThreadId()];//.........这里部分代码省略.........
开发者ID:eulerhit,项目名称:ImageMagick,代码行数:101,


示例16: GetImageBoundingBox

/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%                                                                             %%                                                                             %%                                                                             %+   G e t I m a g e B o u n d i n g B o x                                     %%                                                                             %%                                                                             %%                                                                             %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  GetImageBoundingBox() returns the bounding box of an image canvas.%%  The format of the GetImageBoundingBox method is:%%      RectangleInfo GetImageBoundingBox(const Image *image,%        ExceptionInfo *exception)%%  A description of each parameter follows:%%    o bounds: Method GetImageBoundingBox returns the bounding box of an%      image canvas.%%    o image: the image.%%    o exception: return any errors or warnings in this structure.%*/MagickExport RectangleInfo GetImageBoundingBox(const Image *image,  ExceptionInfo *exception){  CacheView    *image_view;  MagickBooleanType    status;  PixelInfo    target[3],    zero;  RectangleInfo    bounds;  register const Quantum    *p;  ssize_t    y;  assert(image != (Image *) NULL);  assert(image->signature == MagickSignature);  if (image->debug != MagickFalse)    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);  bounds.width=0;  bounds.height=0;  bounds.x=(ssize_t) image->columns;  bounds.y=(ssize_t) image->rows;  GetPixelInfo(image,&target[0]);  image_view=AcquireVirtualCacheView(image,exception);  p=GetCacheViewVirtualPixels(image_view,0,0,1,1,exception);  if (p == (const Quantum *) NULL)    {      image_view=DestroyCacheView(image_view);      return(bounds);    }  GetPixelInfoPixel(image,p,&target[0]);  GetPixelInfo(image,&target[1]);  p=GetCacheViewVirtualPixels(image_view,(ssize_t) image->columns-1,0,1,1,    exception);  GetPixelInfoPixel(image,p,&target[1]);  GetPixelInfo(image,&target[2]);  p=GetCacheViewVirtualPixels(image_view,0,(ssize_t) image->rows-1,1,1,    exception);  GetPixelInfoPixel(image,p,&target[2]);  status=MagickTrue;  GetPixelInfo(image,&zero);#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++)  {    PixelInfo      pixel;    RectangleInfo      bounding_box;    register const Quantum      *restrict p;    register ssize_t      x;    if (status == MagickFalse)      continue;#if defined(MAGICKCORE_OPENMP_SUPPORT)#  pragma omp critical (MagickCore_GetImageBoundingBox)#endif//.........这里部分代码省略.........
开发者ID:epu,项目名称:ImageMagick,代码行数:101,


示例17: return

MagickExport CacheView *AcquireCacheView(const Image *image){  return(AcquireVirtualCacheView(image,&((Image *) image)->exception));}
开发者ID:divyasnair123,项目名称:vegetable_store,代码行数:4,


示例18: assert

//.........这里部分代码省略.........  if (image->columns != (size/image->rows))    {      component_image=DestroyImage(component_image);      ThrowImageException(ResourceLimitError,"MemoryAllocationFailed");    }  equivalences=AcquireMatrixInfo(size,1,sizeof(ssize_t),exception);  if (equivalences == (MatrixInfo *) NULL)    {      component_image=DestroyImage(component_image);      return((Image *) NULL);    }  for (n=0; n < (ssize_t) (image->columns*image->rows); n++)    (void) SetMatrixElement(equivalences,n,0,&n);  object=(CCObjectInfo *) AcquireQuantumMemory(MaxColormapSize,sizeof(*object));  if (object == (CCObjectInfo *) NULL)    {      equivalences=DestroyMatrixInfo(equivalences);      component_image=DestroyImage(component_image);      ThrowImageException(ResourceLimitError,"MemoryAllocationFailed");    }  (void) ResetMagickMemory(object,0,MaxColormapSize*sizeof(*object));  for (i=0; i < (ssize_t) MaxColormapSize; i++)  {    object[i].id=i;    object[i].bounding_box.x=(ssize_t) image->columns;    object[i].bounding_box.y=(ssize_t) image->rows;    GetPixelInfo(image,&object[i].color);  }  /*    Find connected components.  */  status=MagickTrue;  progress=0;  image_view=AcquireVirtualCacheView(image,exception);  for (n=0; n < (ssize_t) (connectivity > 4 ? 4 : 2); n++)  {    ssize_t      connect4[2][2] = { { -1,  0 }, {  0, -1 } },      connect8[4][2] = { { -1, -1 }, { -1,  0 }, { -1,  1 }, {  0, -1 } },      dx,      dy;    if (status == MagickFalse)      continue;    dy=connectivity > 4 ? connect8[n][0] : connect4[n][0];    dx=connectivity > 4 ? connect8[n][1] : connect4[n][1];    for (y=0; y < (ssize_t) image->rows; y++)    {      register const Quantum        *magick_restrict p;      register ssize_t        x;      if (status == MagickFalse)        continue;      p=GetCacheViewVirtualPixels(image_view,0,y-1,image->columns,3,exception);      if (p == (const Quantum *) NULL)        {          status=MagickFalse;          continue;        }      p+=GetPixelChannels(image)*image->columns;      for (x=0; x < (ssize_t) image->columns; x++)      {        PixelInfo
开发者ID:DINKIN,项目名称:ImageMagick,代码行数:67,


示例19: ForwardFourierTransform

static MagickBooleanType ForwardFourierTransform(FourierInfo *fourier_info,  const Image *image,double *magnitude,double *phase,ExceptionInfo *exception){  CacheView    *image_view;  double    n,    *source;  fftw_complex    *fourier;  fftw_plan    fftw_r2c_plan;  register const IndexPacket    *indexes;  register const PixelPacket    *p;  register ssize_t    i,    x;  ssize_t    y;  /*    Generate the forward Fourier transform.  */  source=(double *) AcquireQuantumMemory((size_t) fourier_info->height,    fourier_info->width*sizeof(*source));  if (source == (double *) NULL)    {      (void) ThrowMagickException(exception,GetMagickModule(),        ResourceLimitError,"MemoryAllocationFailed","`%s'",image->filename);      return(MagickFalse);    }  ResetMagickMemory(source,0,fourier_info->height*fourier_info->width*    sizeof(*source));  i=0L;  image_view=AcquireVirtualCacheView(image,exception);  for (y=0L; y < (ssize_t) fourier_info->height; y++)  {    p=GetCacheViewVirtualPixels(image_view,0L,y,fourier_info->width,1UL,      exception);    if (p == (const PixelPacket *) NULL)      break;    indexes=GetCacheViewVirtualIndexQueue(image_view);    for (x=0L; x < (ssize_t) fourier_info->width; x++)    {      switch (fourier_info->channel)      {        case RedChannel:        default:        {          source[i]=QuantumScale*GetPixelRed(p);          break;        }        case GreenChannel:        {          source[i]=QuantumScale*GetPixelGreen(p);          break;        }        case BlueChannel:        {          source[i]=QuantumScale*GetPixelBlue(p);          break;        }        case OpacityChannel:        {          source[i]=QuantumScale*GetPixelOpacity(p);          break;        }        case IndexChannel:        {          source[i]=QuantumScale*GetPixelIndex(indexes+x);          break;        }        case GrayChannels:        {          source[i]=QuantumScale*GetPixelGray(p);          break;        }      }      i++;      p++;    }  }  image_view=DestroyCacheView(image_view);  fourier=(fftw_complex *) AcquireQuantumMemory((size_t) fourier_info->height,    fourier_info->center*sizeof(*fourier));  if (fourier == (fftw_complex *) NULL)    {      (void) ThrowMagickException(exception,GetMagickModule(),        ResourceLimitError,"MemoryAllocationFailed","`%s'",image->filename);      source=(double *) RelinquishMagickMemory(source);      return(MagickFalse);//.........这里部分代码省略.........
开发者ID:0xPr0xy,项目名称:ImageMagick,代码行数:101,


示例20: InverseFourier

static MagickBooleanType InverseFourier(FourierInfo *fourier_info,  const Image *magnitude_image,const Image *phase_image,fftw_complex *fourier,  ExceptionInfo *exception){  CacheView    *magnitude_view,    *phase_view;  double    *magnitude,    *phase,    *magnitude_source,    *phase_source;  MagickBooleanType    status;  register const IndexPacket    *indexes;  register const PixelPacket    *p;  register ssize_t    i,    x;  ssize_t    y;  /*    Inverse fourier - read image and break down into a double array.  */  magnitude_source=(double *) AcquireQuantumMemory((size_t)    fourier_info->height,fourier_info->width*sizeof(*magnitude_source));  if (magnitude_source == (double *) NULL)    {      (void) ThrowMagickException(exception,GetMagickModule(),        ResourceLimitError,"MemoryAllocationFailed","`%s'",        magnitude_image->filename);      return(MagickFalse);    }  phase_source=(double *) AcquireQuantumMemory((size_t) fourier_info->height,    fourier_info->width*sizeof(*phase_source));  if (phase_source == (double *) NULL)    {      (void) ThrowMagickException(exception,GetMagickModule(),        ResourceLimitError,"MemoryAllocationFailed","`%s'",        magnitude_image->filename);      magnitude_source=(double *) RelinquishMagickMemory(magnitude_source);      return(MagickFalse);    }  i=0L;  magnitude_view=AcquireVirtualCacheView(magnitude_image,exception);  for (y=0L; y < (ssize_t) fourier_info->height; y++)  {    p=GetCacheViewVirtualPixels(magnitude_view,0L,y,fourier_info->width,1UL,      exception);    if (p == (const PixelPacket *) NULL)      break;    indexes=GetCacheViewAuthenticIndexQueue(magnitude_view);    for (x=0L; x < (ssize_t) fourier_info->width; x++)    {      switch (fourier_info->channel)      {        case RedChannel:        default:        {          magnitude_source[i]=QuantumScale*GetPixelRed(p);          break;        }        case GreenChannel:        {          magnitude_source[i]=QuantumScale*GetPixelGreen(p);          break;        }        case BlueChannel:        {          magnitude_source[i]=QuantumScale*GetPixelBlue(p);          break;        }        case OpacityChannel:        {          magnitude_source[i]=QuantumScale*GetPixelOpacity(p);          break;        }        case IndexChannel:        {          magnitude_source[i]=QuantumScale*GetPixelIndex(indexes+x);          break;        }        case GrayChannels:        {          magnitude_source[i]=QuantumScale*GetPixelGray(p);          break;        }      }      i++;      p++;    }//.........这里部分代码省略.........
开发者ID:0xPr0xy,项目名称:ImageMagick,代码行数:101,


示例21: SignatureImage

/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%                                                                             %%                                                                             %%                                                                             %%   S i g n a t u r e I m a g e                                               %%                                                                             %%                                                                             %%                                                                             %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  SignatureImage() computes a message digest from an image pixel stream with%  an implementation of the NIST SHA-256 Message Digest algorithm.  This%  signature uniquely identifies the image and is convenient for determining%  if an image has been modified or whether two images are identical.%%  The format of the SignatureImage method is:%%      MagickBooleanType SignatureImage(Image *image,ExceptionInfo *exception)%%  A description of each parameter follows:%%    o image: the image.%%    o exception: return any errors or warnings in this structure.%*/MagickExport MagickBooleanType SignatureImage(Image *image,  ExceptionInfo *exception){  CacheView    *image_view;  char    *hex_signature;  double    pixel;  register const Quantum    *p;  SignatureInfo    *signature_info;  ssize_t    y;  StringInfo    *signature;  unsigned char    *pixels;  /*    Compute image digital signature.  */  assert(image != (Image *) NULL);  assert(image->signature == MagickSignature);  if (image->debug != MagickFalse)    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);  signature_info=AcquireSignatureInfo();  signature=AcquireStringInfo(image->columns*GetPixelChannels(image)*    sizeof(pixel));  image_view=AcquireVirtualCacheView(image,exception);  for (y=0; y < (ssize_t) image->rows; y++)  {    register ssize_t      x;    register unsigned char      *q;    p=GetCacheViewVirtualPixels(image_view,0,y,image->columns,1,exception);    if (p == (const Quantum *) NULL)      break;    SetStringInfoLength(signature,image->columns*GetPixelChannels(image)*      sizeof(pixel));    pixels=GetStringInfoDatum(signature);    q=pixels;    for (x=0; x < (ssize_t) image->columns; x++)    {      register ssize_t        i;      if (GetPixelReadMask(image,p) == 0)        {          p+=GetPixelChannels(image);          continue;        }      for (i=0; i < (ssize_t) GetPixelChannels(image); i++)      {        register ssize_t          j;        PixelChannel channel=GetPixelChannelChannel(image,i);        PixelTrait traits=GetPixelChannelTraits(image,channel);        if (traits == UndefinedPixelTrait)          continue;        pixel=QuantumScale*p[i];//.........这里部分代码省略.........
开发者ID:Distrotech,项目名称:ImageMagick,代码行数:101,


示例22: FrameImage

//.........这里部分代码省略.........  accentuate.blue=(MagickRealType) (QuantumScale*((QuantumRange-    AccentuateModulate)*matte.blue+(QuantumRange*AccentuateModulate)));  accentuate.opacity=matte.opacity;  GetMagickPixelPacket(frame_image,&highlight);  highlight.red=(MagickRealType) (QuantumScale*((QuantumRange-    HighlightModulate)*matte.red+(QuantumRange*HighlightModulate)));  highlight.green=(MagickRealType) (QuantumScale*((QuantumRange-    HighlightModulate)*matte.green+(QuantumRange*HighlightModulate)));  highlight.blue=(MagickRealType) (QuantumScale*((QuantumRange-    HighlightModulate)*matte.blue+(QuantumRange*HighlightModulate)));  highlight.opacity=matte.opacity;  GetMagickPixelPacket(frame_image,&shadow);  shadow.red=QuantumScale*matte.red*ShadowModulate;  shadow.green=QuantumScale*matte.green*ShadowModulate;  shadow.blue=QuantumScale*matte.blue*ShadowModulate;  shadow.opacity=matte.opacity;  GetMagickPixelPacket(frame_image,&trough);  trough.red=QuantumScale*matte.red*TroughModulate;  trough.green=QuantumScale*matte.green*TroughModulate;  trough.blue=QuantumScale*matte.blue*TroughModulate;  trough.opacity=matte.opacity;  if (image->colorspace == CMYKColorspace)    {      ConvertRGBToCMYK(&interior);      ConvertRGBToCMYK(&matte);      ConvertRGBToCMYK(&border);      ConvertRGBToCMYK(&accentuate);      ConvertRGBToCMYK(&highlight);      ConvertRGBToCMYK(&shadow);      ConvertRGBToCMYK(&trough);    }  status=MagickTrue;  progress=0;  image_view=AcquireVirtualCacheView(image,exception);  frame_view=AcquireAuthenticCacheView(frame_image,exception);  height=(size_t) (frame_info->outer_bevel+(frame_info->y-bevel_width)+    frame_info->inner_bevel);  if (height != 0)    {      register IndexPacket        *restrict frame_indexes;      register ssize_t        x;      register PixelPacket        *restrict q;      /*        Draw top of ornamental border.      */      q=QueueCacheViewAuthenticPixels(frame_view,0,0,frame_image->columns,        height,exception);      frame_indexes=GetCacheViewAuthenticIndexQueue(frame_view);      if (q != (PixelPacket *) NULL)        {          /*            Draw top of ornamental border.          */          for (y=0; y < (ssize_t) frame_info->outer_bevel; y++)          {            for (x=0; x < (ssize_t) (frame_image->columns-y); x++)            {              if (x < y)                SetPixelPacket(frame_image,&highlight,q,frame_indexes);              else
开发者ID:AlexiaChen,项目名称:ImageMagick_Cmake,代码行数:67,


示例23: CombineImages

//.........这里部分代码省略.........  combine_view=AcquireAuthenticCacheView(combine_image,exception);  for (y=0; y < (ssize_t) combine_image->rows; y++)  {    CacheView      *image_view;    const Image      *next;    PixelPacket      *pixels;    register const PixelPacket      *restrict p;    register PixelPacket      *restrict q;    register ssize_t      x;    if (status == MagickFalse)      continue;    pixels=GetCacheViewAuthenticPixels(combine_view,0,y,combine_image->columns,      1,exception);    if (pixels == (PixelPacket *) NULL)      {        status=MagickFalse;        continue;      }    next=image;    if (((channel & RedChannel) != 0) && (next != (Image *) NULL))      {        image_view=AcquireVirtualCacheView(next,exception);        p=GetCacheViewVirtualPixels(image_view,0,y,next->columns,1,exception);        if (p == (const PixelPacket *) NULL)          continue;        q=pixels;        for (x=0; x < (ssize_t) combine_image->columns; x++)        {          SetPixelRed(q,ClampToQuantum(GetPixelIntensity(image,p)));          p++;          q++;        }        image_view=DestroyCacheView(image_view);        next=GetNextImageInList(next);      }    if (((channel & GreenChannel) != 0) && (next != (Image *) NULL))      {        image_view=AcquireVirtualCacheView(next,exception);        p=GetCacheViewVirtualPixels(image_view,0,y,next->columns,1,exception);        if (p == (const PixelPacket *) NULL)          continue;        q=pixels;        for (x=0; x < (ssize_t) combine_image->columns; x++)        {          SetPixelGreen(q,ClampToQuantum(GetPixelIntensity(image,p)));          p++;          q++;        }        image_view=DestroyCacheView(image_view);        next=GetNextImageInList(next);      }    if (((channel & BlueChannel) != 0) && (next != (Image *) NULL))      {        image_view=AcquireVirtualCacheView(next,exception);
开发者ID:abzolute0,项目名称:Ruby_Blog,代码行数:67,


示例24: ChannelImage

static MagickBooleanType ChannelImage(Image *destination_image,  const PixelChannel destination_channel,const ChannelFx channel_op,  const Image *source_image,const PixelChannel source_channel,  const Quantum pixel,ExceptionInfo *exception){  CacheView    *source_view,    *destination_view;  MagickBooleanType    status;  size_t    height,    width;  ssize_t    y;  status=MagickTrue;  source_view=AcquireVirtualCacheView(source_image,exception);  destination_view=AcquireAuthenticCacheView(destination_image,exception);  height=MagickMin(source_image->rows,destination_image->rows);  width=MagickMin(source_image->columns,destination_image->columns);#if defined(MAGICKCORE_OPENMP_SUPPORT)  #pragma omp parallel for schedule(static,4) shared(status) /    magick_threads(source_image,source_image,height,1)#endif  for (y=0; y < (ssize_t) height; y++)  {    PixelTrait      destination_traits,      source_traits;    register const Quantum      *restrict p;    register Quantum      *restrict q;    register ssize_t      x;    if (status == MagickFalse)      continue;    p=GetCacheViewVirtualPixels(source_view,0,y,source_image->columns,1,      exception);    q=GetCacheViewAuthenticPixels(destination_view,0,y,      destination_image->columns,1,exception);    if ((p == (const Quantum *) NULL) || (q == (Quantum *) NULL))      {        status=MagickFalse;        continue;      }    destination_traits=GetPixelChannelTraits(destination_image,      destination_channel);    source_traits=GetPixelChannelTraits(source_image,source_channel);    if ((destination_traits == UndefinedPixelTrait) ||        (source_traits == UndefinedPixelTrait))      continue;    for (x=0; x < (ssize_t) width; x++)    {      if (channel_op == AssignChannelOp)        SetPixelChannel(destination_image,destination_channel,pixel,q);      else        SetPixelChannel(destination_image,destination_channel,          GetPixelChannel(source_image,source_channel,p),q);      p+=GetPixelChannels(source_image);      q+=GetPixelChannels(destination_image);    }    if (SyncCacheViewAuthenticPixels(destination_view,exception) == MagickFalse)      status=MagickFalse;  }  destination_view=DestroyCacheView(destination_view);  source_view=DestroyCacheView(source_view);  return(status);}
开发者ID:saitoha,项目名称:ImageMagick-V7-SIXEL,代码行数:77,


示例25: analyzeImage

/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%                                                                             %%                                                                             %%                                                                             %%   a n a l y z e I m a g e                                                   %%                                                                             %%                                                                             %%                                                                             %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  analyzeImage() computes the brightness and saturation mean,  standard%  deviation, kurtosis and skewness and stores these values as attributes %  of the image.%%  The format of the analyzeImage method is:%%      size_t analyzeImage(Image *images,const int argc,%        char **argv,ExceptionInfo *exception)%%  A description of each parameter follows:%%    o image: the address of a structure of type Image.%%    o argc: Specifies a pointer to an integer describing the number of%      elements in the argument vector.%%    o argv: Specifies a pointer to a text array containing the command line%      arguments.%%    o exception: return any errors or warnings in this structure.%*/ModuleExport size_t analyzeImage(Image **images,const int argc,  const char **argv,ExceptionInfo *exception){  char    text[MagickPathExtent];  double    area,    brightness,    brightness_mean,    brightness_standard_deviation,    brightness_kurtosis,    brightness_skewness,    brightness_sum_x,    brightness_sum_x2,    brightness_sum_x3,    brightness_sum_x4,    hue,    saturation,    saturation_mean,    saturation_standard_deviation,    saturation_kurtosis,    saturation_skewness,    saturation_sum_x,    saturation_sum_x2,    saturation_sum_x3,    saturation_sum_x4;  Image    *image;  assert(images != (Image **) NULL);  assert(*images != (Image *) NULL);  assert((*images)->signature == MagickCoreSignature);  (void) argc;  (void) argv;  image=(*images);  for ( ; image != (Image *) NULL; image=GetNextImageInList(image))  {    CacheView      *image_view;    ssize_t      y;    MagickBooleanType      status;    brightness_sum_x=0.0;    brightness_sum_x2=0.0;    brightness_sum_x3=0.0;    brightness_sum_x4=0.0;    brightness_mean=0.0;    brightness_standard_deviation=0.0;    brightness_kurtosis=0.0;    brightness_skewness=0.0;    saturation_sum_x=0.0;    saturation_sum_x2=0.0;    saturation_sum_x3=0.0;    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);//.........这里部分代码省略.........
开发者ID:278443820,项目名称:ImageMagick,代码行数:101,


示例26: GetImageTotalInkDensity

/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%                                                                             %%                                                                             %%                                                                             %%   G e t I m a g e T o t a l I n k D e n s i t y                             %%                                                                             %%                                                                             %%                                                                             %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  GetImageTotalInkDensity() returns the total ink density for a CMYK image.%  Total Ink Density (TID) is determined by adding the CMYK values in the%  darkest shadow area in an image.%%  The format of the GetImageTotalInkDensity method is:%%      double GetImageTotalInkDensity(const Image *image,%        ExceptionInfo *exception)%%  A description of each parameter follows:%%    o image: the image.%%    o exception: return any errors or warnings in this structure.%*/MagickExport double GetImageTotalInkDensity(Image *image,  ExceptionInfo *exception){  CacheView    *image_view;  double    total_ink_density;  MagickBooleanType    status;  ssize_t    y;  assert(image != (Image *) NULL);  if (image->debug != MagickFalse)    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"...");  assert(image->signature == MagickCoreSignature);  if (image->colorspace != CMYKColorspace)    {      (void) ThrowMagickException(exception,GetMagickModule(),ImageError,        "ColorSeparatedImageRequired","`%s'",image->filename);      return(0.0);    }  status=MagickTrue;  total_ink_density=0.0;  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++)  {    double      density;    register const Quantum      *p;    register ssize_t      x;    p=GetCacheViewVirtualPixels(image_view,0,y,image->columns,1,exception);    if (p == (const Quantum *) NULL)      {        status=MagickFalse;        continue;      }    for (x=0; x < (ssize_t) image->columns; x++)    {      density=(double) GetPixelRed(image,p)+GetPixelGreen(image,p)+        GetPixelBlue(image,p)+GetPixelBlack(image,p);      if (density > total_ink_density)#if defined(MAGICKCORE_OPENMP_SUPPORT)        #pragma omp critical (MagickCore_GetImageTotalInkDensity)#endif        {          if (density > total_ink_density)            total_ink_density=density;        }      p+=GetPixelChannels(image);    }  }  image_view=DestroyCacheView(image_view);  if (status == MagickFalse)    total_ink_density=0.0;  return(total_ink_density);}
开发者ID:anorland,项目名称:ImageMagick,代码行数:96,


示例27: SeparateImage

/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%                                                                             %%                                                                             %%                                                                             %%     S e p a r a t e I m a g e                                               %%                                                                             %%                                                                             %%                                                                             %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  SeparateImage() separates a channel from the image and returns it as a%  grayscale image.%%  The format of the SeparateImage method is:%%      Image *SeparateImage(const Image *image,const ChannelType channel,%        ExceptionInfo *exception)%%  A description of each parameter follows:%%    o image: the image.%%    o channel: the image channel.%%    o exception: return any errors or warnings in this structure.%*/MagickExport Image *SeparateImage(const Image *image,  const ChannelType channel_type,ExceptionInfo *exception){#define GetChannelBit(mask,bit)  (((size_t) (mask) >> (size_t) (bit)) & 0x01)#define SeparateImageTag  "Separate/Image"  CacheView    *image_view,    *separate_view;  Image    *separate_image;  MagickBooleanType    status;  MagickOffsetType    progress;  ssize_t    y;  /*    Initialize separate image attributes.  */  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);  separate_image=CloneImage(image,image->columns,image->rows,MagickTrue,    exception);  if (separate_image == (Image *) NULL)    return((Image *) NULL);  if (SetImageStorageClass(separate_image,DirectClass,exception) == MagickFalse)    {      separate_image=DestroyImage(separate_image);      return((Image *) NULL);    }  (void) SetImageColorspace(separate_image,GRAYColorspace,exception);  separate_image->alpha_trait=UndefinedPixelTrait;  /*    Separate image.  */  status=MagickTrue;  progress=0;  image_view=AcquireVirtualCacheView(image,exception);  separate_view=AcquireAuthenticCacheView(separate_image,exception);#if defined(MAGICKCORE_OPENMP_SUPPORT)  #pragma omp parallel for schedule(static,4) shared(progress,status) /    magick_threads(image,image,image->rows,1)#endif  for (y=0; y < (ssize_t) image->rows; y++)  {    register const Quantum      *restrict p;    register Quantum      *restrict q;    register ssize_t      x;    if (status == MagickFalse)      continue;    p=GetCacheViewVirtualPixels(image_view,0,y,image->columns,1,exception);    q=QueueCacheViewAuthenticPixels(separate_view,0,y,separate_image->columns,1,      exception);    if ((p == (const Quantum *) NULL) || (q == (Quantum *) NULL))      {        status=MagickFalse;//.........这里部分代码省略.........
开发者ID:saitoha,项目名称:ImageMagick-V7-SIXEL,代码行数:101,



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


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