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

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

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

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

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

示例1: SpliceImageIntoList

/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%                                                                             %%                                                                             %%                                                                             %%   S p l i c e I m a g e I n t o L i s t                                     %%                                                                             %%                                                                             %%                                                                             %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  SpliceImageIntoList() removes 'length' images from the list and replaces%  them with the specified splice. Removed images are returned.%%  The format of the SpliceImageIntoList method is:%%      SpliceImageIntoList(Image **images,const unsigned long,%        const Image *splice)%%  A description of each parameter follows:%%    o images: the image list.%%    o length: the length of the image list to remove.%%    o splice: Replace the removed image list with this list.%*/MagickExport Image *SpliceImageIntoList(Image **images,  const unsigned long length,const Image *splice){  Image    *image,    *split;  register unsigned long    i;  assert(images != (Image **) NULL);  assert(splice != (Image *) NULL);  assert(splice->signature == MagickSignature);  if ((*images) == (Image *) NULL)    return((Image *) NULL);  assert((*images)->signature == MagickSignature);  if ((*images)->debug != MagickFalse)    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",      (*images)->filename);  split=SplitImageList(*images);  AppendImageToList(images,splice);  image=(Image *) NULL;  for (i=0; (i < length) && (split != (Image *) NULL); i++)    AppendImageToList(&image,RemoveImageFromList(&split));  AppendImageToList(images,split);  return(image);}
开发者ID:0xPr0xy,项目名称:ImageMagick,代码行数:55,


示例2: SeparateImages

/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%                                                                             %%                                                                             %%                                                                             %%     S e p a r a t e I m a g e s                                             %%                                                                             %%                                                                             %%                                                                             %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  SeparateImages() returns a separate grayscale image for each channel%  specified.%%  The format of the SeparateImages method is:%%      Image *SeparateImages(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 Image *SeparateImages(const Image *image,ExceptionInfo *exception){  Image    *images,    *separate_image;  register ssize_t    i;  assert(image != (Image *) NULL);  assert(image->signature == MagickSignature);  if (image->debug != MagickFalse)    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);  images=NewImageList();  for (i=0; i < (ssize_t) GetPixelChannels(image); i++)  {    PixelChannel channel=GetPixelChannelChannel(image,i);    PixelTrait traits=GetPixelChannelTraits(image,channel);    if ((traits == UndefinedPixelTrait) ||        ((traits & UpdatePixelTrait) == 0))      continue;    separate_image=SeparateImage(image,(ChannelType) (1 << channel),exception);    if (separate_image != (Image *) NULL)      AppendImageToList(&images,separate_image);  }  if (images == (Image *) NULL)    images=SeparateImage(image,UndefinedChannel,exception);  return(images);}
开发者ID:saitoha,项目名称:ImageMagick-V7-SIXEL,代码行数:54,


示例3: while

Image *AutoResizeImage(const Image *image,const char *option,  MagickOffsetType *count,ExceptionInfo *exception){  #define MAX_SIZES 16  char    *q;  const char    *p;  Image    *resized,    *images;  register ssize_t    i;  size_t    sizes[MAX_SIZES]={256,192,128,96,64,48,40,32,24,16};  images=NULL;  *count=0;  i=0;  p=option;  while (*p != '/0' && i < MAX_SIZES)  {    size_t      size;    while ((isspace((int) ((unsigned char) *p)) != 0))      p++;    size=(size_t)strtol(p,&q,10);    if ((p == q) || (size < 16) || (size > 256))      return((Image *) NULL);    p=q;    sizes[i++]=size;    while ((isspace((int) ((unsigned char) *p)) != 0) || (*p == ','))      p++;  }  if (i==0)    i=10;  *count=i;  for (i=0; i < *count; i++)  {    resized=ResizeImage(image,sizes[i],sizes[i],image->filter,exception);    if (resized == (Image *) NULL)      return(DestroyImageList(images));    if (images == (Image *) NULL)      images=resized;    else      AppendImageToList(&images,resized);  }  return(images);}
开发者ID:DINKIN,项目名称:ImageMagick,代码行数:60,


示例4: images_from_imagelist

/** * Convert an array of Image *s to an ImageMagick scene sequence (i.e. a * doubly-linked list of Images). * * No Ruby usage (internal function) * * @param imagelist the imagelist * @return a pointer to the head of the scene sequence list * @see rm_imagelist_from_images */static Image *images_from_imagelist(VALUE imagelist){    long x, len;    Image *head = NULL;    VALUE images, t;    len = check_imagelist_length(imagelist);    images = rb_iv_get(imagelist, "@images");    for (x = 0; x < len; x++)    {        Image *image;        t = rb_ary_entry(images, x);        image = rm_check_destroyed(t);        // avoid a loop in this linked imagelist, issue #202        if (head == image || GetPreviousImageInList(image) != NULL)        {            image = rm_clone_image(image);        }        AppendImageToList(&head, image);    }    RB_GC_GUARD(images);    RB_GC_GUARD(t);    return head;}
开发者ID:ABaumgaertner,项目名称:rmagick,代码行数:39,


示例5: sequence

/*    Extern:     images_from_imagelist    Purpose:    Convert an array of Image *s to an ImageMagick scene                sequence (i.e. a doubly-linked list of Images)    Returns:    a pointer to the head of the scene sequence list*/static Image *images_from_imagelist(VALUE imagelist){    long x, len;    Image *head = NULL;    volatile VALUE images, t;    len = imagelist_length(imagelist);    if (len == 0)    {        rb_raise(rb_eArgError, "no images in this image list");    }    images = rb_iv_get(imagelist, "@images");    for (x = 0; x < len; x++)    {        Image *image;        t = rb_ary_entry(images, x);        image = rm_check_destroyed(t);        AppendImageToList(&head, image);    }    return head;}
开发者ID:Flagship8787,项目名称:Suwaru-Rails,代码行数:31,


示例6: InsertImageInList

/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%                                                                             %%                                                                             %%                                                                             %%   I n s e r t I m a g e I n L i s t                                         %%                                                                             %%                                                                             %%                                                                             %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  InsertImageInList() inserts the second image or image list into the first%  image list immediatally after the image pointed to.  The given image list%  pointer is unchanged unless previously empty.%%  The format of the InsertImageInList method is:%%      InsertImageInList(Image **images,Image *image)%%  A description of each parameter follows:%%    o images: the image list to insert into.%%    o image: the image list to insert.%*/MagickExport void InsertImageInList(Image **images,Image *image){  Image    *split;  assert(images != (Image **) NULL);  assert(image != (Image *) NULL);  assert(image->signature == MagickSignature);  if (image->debug != MagickFalse)    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);  if ((*images) == (Image *) NULL)    return;  assert((*images)->signature == MagickSignature);  split=SplitImageList(*images);  AppendImageToList(images,image);  AppendImageToList(images,split);}
开发者ID:0xPr0xy,项目名称:ImageMagick,代码行数:43,


示例7: PingImages

/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%                                                                             %%                                                                             %%                                                                             %%   P i n g I m a g e s                                                       %%                                                                             %%                                                                             %%                                                                             %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  PingImages() pings one or more images and returns them as an image list.%%  The format of the PingImage method is:%%      Image *PingImages(const ImageInfo *image_info,ExceptionInfo *exception)%%  A description of each parameter follows:%%    o image_info: the image info.%%    o exception: return any errors or warnings in this structure.%*/MagickExport Image *PingImages(const ImageInfo *image_info,  ExceptionInfo *exception){  char    filename[MaxTextExtent];  Image    *image,    *images;  ImageInfo    *read_info;  /*    Ping image list from a file.  */  assert(image_info != (ImageInfo *) NULL);  assert(image_info->signature == MagickSignature);  if (image_info->debug != MagickFalse)    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",      image_info->filename);  assert(exception != (ExceptionInfo *) NULL);  (void) InterpretImageFilename(image_info,(Image *) NULL,image_info->filename,    (int) image_info->scene,filename,exception);  if (LocaleCompare(filename,image_info->filename) != 0)    {      ExceptionInfo        *sans;      ssize_t        extent,        scene;      /*        Images of the form image-%d.png[1-5].      */      read_info=CloneImageInfo(image_info);      sans=AcquireExceptionInfo();      (void) SetImageInfo(read_info,0,sans);      sans=DestroyExceptionInfo(sans);      (void) CopyMagickString(filename,read_info->filename,MaxTextExtent);      images=NewImageList();      extent=(ssize_t) (read_info->scene+read_info->number_scenes);      for (scene=(ssize_t) read_info->scene; scene < (ssize_t) extent; scene++)      {        (void) InterpretImageFilename(image_info,(Image *) NULL,filename,(int)          scene,read_info->filename,exception);        image=PingImage(read_info,exception);        if (image == (Image *) NULL)          continue;        AppendImageToList(&images,image);      }      read_info=DestroyImageInfo(read_info);      return(images);    }  return(PingImage(image_info,exception));}
开发者ID:ChaseReid,项目名称:ImageMagick,代码行数:81,


示例8: SeparateImages

/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%                                                                             %%                                                                             %%                                                                             %%     S e p a r a t e I m a g e s                                             %%                                                                             %%                                                                             %%                                                                             %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  SeparateImages() returns a separate grayscale image for each channel%  specified.%%  The format of the SeparateImages method is:%%      MagickBooleanType SeparateImages(const Image *image,%        const ChannelType channel,ExceptionInfo *exception)%%  A description of each parameter follows:%%    o image: the image.%%    o channel: Identify which channels to extract: RedChannel, GreenChannel,%      BlueChannel, OpacityChannel, CyanChannel, MagentaChannel,%      YellowChannel, or BlackChannel.%%    o exception: return any errors or warnings in this structure.%*/MagickExport Image *SeparateImages(const Image *image,const ChannelType channel,  ExceptionInfo *exception){  Image    *images,    *separate_image;  assert(image != (Image *) NULL);  assert(image->signature == MagickSignature);  if (image->debug != MagickFalse)    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);  images=NewImageList();  if ((channel & RedChannel) != 0)    {      separate_image=CloneImage(image,0,0,MagickTrue,exception);      (void) SeparateImageChannel(separate_image,RedChannel);      AppendImageToList(&images,separate_image);    }  if ((channel & GreenChannel) != 0)    {      separate_image=CloneImage(image,0,0,MagickTrue,exception);      (void) SeparateImageChannel(separate_image,GreenChannel);      AppendImageToList(&images,separate_image);    }  if ((channel & BlueChannel) != 0)    {      separate_image=CloneImage(image,0,0,MagickTrue,exception);      (void) SeparateImageChannel(separate_image,BlueChannel);      AppendImageToList(&images,separate_image);    }  if (((channel & BlackChannel) != 0) && (image->colorspace == CMYKColorspace))    {      separate_image=CloneImage(image,0,0,MagickTrue,exception);      (void) SeparateImageChannel(separate_image,BlackChannel);      AppendImageToList(&images,separate_image);    }  if ((channel & AlphaChannel) != 0)    {      separate_image=CloneImage(image,0,0,MagickTrue,exception);      (void) SeparateImageChannel(separate_image,TrueAlphaChannel);      AppendImageToList(&images,separate_image);    }  return(images);}
开发者ID:abzolute0,项目名称:Ruby_Blog,代码行数:74,


示例9: clone_imagelist

/** * Clone a list of images, handle errors. * * No Ruby usage (internal function) * * @param images the images * @return a new array of images */static Image *clone_imagelist(Image *images){    Image *new_imagelist = NULL, *image, *clone;    ExceptionInfo *exception;    exception = AcquireExceptionInfo();    image = GetFirstImageInList(images);    while (image)    {        clone = CloneImage(image, 0, 0, MagickTrue, exception);        rm_check_exception(exception, new_imagelist, DestroyOnError);        AppendImageToList(&new_imagelist, clone);        image = GetNextImageInList(image);    }    (void) DestroyExceptionInfo(exception);    return new_imagelist;}
开发者ID:ABaumgaertner,项目名称:rmagick,代码行数:28,


示例10: sequence

/*    Extern:     images_from_imagelist    Purpose:    Convert an array of Image *s to an ImageMagick scene                sequence (i.e. a doubly-linked list of Images)    Returns:    a pointer to the head of the scene sequence list*/static Image *images_from_imagelist(VALUE imagelist){    long x, len;    Image *head = NULL;    volatile VALUE images, t;    len = check_imagelist_length(imagelist);    images = rb_iv_get(imagelist, "@images");    for (x = 0; x < len; x++)    {        Image *image;        t = rb_ary_entry(images, x);        image = rm_check_destroyed(t);        AppendImageToList(&head, image);    }    return head;}
开发者ID:Des,项目名称:your_app_name,代码行数:27,


示例11: load_images

static int load_images(LogoPrivateData *pd){    Image         *timg;    Image         *nimg;    pd->images = GetFirstImageInList(pd->magick.image);    nimg = NewImageList();    while (pd->images != (Image *)NULL) {        if (pd->flip) {            timg = FlipImage(pd->images,                              &pd->magick.exception_info);            if (timg == NULL) {                CatchException(&pd->magick.exception_info);                return TC_ERROR;            }            AppendImageToList(&nimg, timg);        }        pd->images = GetNextImageInList(pd->images);        pd->nr_of_images++;    }    // check for memleaks;    //DestroyImageList(image);    if (pd->flip) {        /* DANGEROUS!!! */        pd->magick.image = nimg;    }    /* for running through image sequence */    /* DANGEROUS!!! */    pd->images = pd->magick.image;    return TC_OK;}
开发者ID:BackupTheBerlios,项目名称:tcforge,代码行数:36,


示例12: ThrowMagickException

MagickExport Image *ForwardFourierTransformImage(const Image *image,  const MagickBooleanType modulus,ExceptionInfo *exception){  Image    *fourier_image;  fourier_image=NewImageList();#if !defined(MAGICKCORE_FFTW_DELEGATE)  (void) modulus;  (void) ThrowMagickException(exception,GetMagickModule(),    MissingDelegateWarning,"DelegateLibrarySupportNotBuiltIn","`%s' (FFTW)",    image->filename);#else  {    Image      *magnitude_image;    size_t      extent,      width;    width=image->columns;    if ((image->columns != image->rows) || ((image->columns % 2) != 0) ||        ((image->rows % 2) != 0))      {        extent=image->columns < image->rows ? image->rows : image->columns;        width=(extent & 0x01) == 1 ? extent+1UL : extent;      }    magnitude_image=CloneImage(image,width,width,MagickFalse,exception);    if (magnitude_image != (Image *) NULL)      {        Image          *phase_image;        magnitude_image->storage_class=DirectClass;        magnitude_image->depth=32UL;        phase_image=CloneImage(image,width,width,MagickFalse,exception);        if (phase_image == (Image *) NULL)          magnitude_image=DestroyImage(magnitude_image);        else          {            MagickBooleanType              is_gray,              status;            phase_image->storage_class=DirectClass;            phase_image->depth=32UL;            AppendImageToList(&fourier_image,magnitude_image);            AppendImageToList(&fourier_image,phase_image);            status=MagickTrue;            is_gray=IsGrayImage(image,exception);#if defined(MAGICKCORE_OPENMP_SUPPORT)            #pragma omp parallel sections#endif            {#if defined(MAGICKCORE_OPENMP_SUPPORT)              #pragma omp section#endif              {                MagickBooleanType                  thread_status;                if (is_gray != MagickFalse)                  thread_status=ForwardFourierTransformChannel(image,                    GrayChannels,modulus,fourier_image,exception);                else                  thread_status=ForwardFourierTransformChannel(image,                    RedChannel,modulus,fourier_image,exception);                if (thread_status == MagickFalse)                  status=thread_status;              }#if defined(MAGICKCORE_OPENMP_SUPPORT)              #pragma omp section#endif              {                MagickBooleanType                  thread_status;                thread_status=MagickTrue;                if (is_gray == MagickFalse)                  thread_status=ForwardFourierTransformChannel(image,                    GreenChannel,modulus,fourier_image,exception);                if (thread_status == MagickFalse)                  status=thread_status;              }#if defined(MAGICKCORE_OPENMP_SUPPORT)              #pragma omp section#endif              {                MagickBooleanType                  thread_status;                thread_status=MagickTrue;                if (is_gray == MagickFalse)                  thread_status=ForwardFourierTransformChannel(image,                    BlueChannel,modulus,fourier_image,exception);                if (thread_status == MagickFalse)                  status=thread_status;              }#if defined(MAGICKCORE_OPENMP_SUPPORT)//.........这里部分代码省略.........
开发者ID:0xPr0xy,项目名称:ImageMagick,代码行数:101,


示例13: ReadJNXImage

//.........这里部分代码省略.........    offset=SeekBlob(image,(MagickOffsetType) jnx_level_info[i].offset,SEEK_SET);    if (offset != (MagickOffsetType) jnx_level_info[i].offset)      continue;    for (j=0; j < (ssize_t) jnx_level_info[i].count; j++)    {      Image        *tile_image;      ImageInfo        *read_info;      int        tile_offset;      MagickOffsetType        restore_offset;      PointInfo        northeast,        southwest;      ssize_t        count;      unsigned char        *blob;      unsigned int        tile_length;      northeast.x=180.0*((int) ReadBlobLSBLong(image))/0x7fffffff;      northeast.y=180.0*((int) ReadBlobLSBLong(image))/0x7fffffff;      southwest.x=180.0*((int) ReadBlobLSBLong(image))/0x7fffffff;      southwest.y=180.0*((int) ReadBlobLSBLong(image))/0x7fffffff;      (void) ReadBlobLSBShort(image); /* width */      (void) ReadBlobLSBShort(image); /* height */      tile_length=ReadBlobLSBLong(image);      tile_offset=(int) ReadBlobLSBLong(image);      if (tile_offset == -1)        continue;      restore_offset=TellBlob(image);      if (restore_offset < 0)        continue;      offset=SeekBlob(image,(MagickOffsetType) tile_offset,SEEK_SET);      if (offset != (MagickOffsetType) tile_offset)        continue;      /*        Read a tile.      */      blob=(unsigned char *) AcquireQuantumMemory((size_t) tile_length+2,        sizeof(*blob));      if (blob == (unsigned char *) NULL)        {          if (images != (Image *) NULL)            images=DestroyImageList(images);          ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");        }      blob[0]=0xFF;      blob[1]=0xD8;      count=ReadBlob(image,tile_length,blob+2);      if (count != (ssize_t) tile_length)        {          if (images != (Image *) NULL)            images=DestroyImageList(images);          blob=(unsigned char *) RelinquishMagickMemory(blob);          ThrowReaderException(CorruptImageError,"UnexpectedEndOfFile");        }      read_info=CloneImageInfo(image_info);      (void) CopyMagickString(read_info->magick,"JPEG",MagickPathExtent);      tile_image=BlobToImage(read_info,blob,tile_length+2,exception);      read_info=DestroyImageInfo(read_info);      blob=(unsigned char *) RelinquishMagickMemory(blob);      offset=SeekBlob(image,restore_offset,SEEK_SET);      if (tile_image == (Image *) NULL)        continue;      (void) CopyMagickString(tile_image->magick,image->magick,MagickPathExtent);      (void) FormatImageProperty(tile_image,"jnx:northeast","%.20g,%.20g",        northeast.x,northeast.y);      (void) FormatImageProperty(tile_image,"jnx:southwest","%.20g,%.20g",        southwest.x,southwest.y);      AppendImageToList(&images,tile_image);    }    if (image->progress_monitor != (MagickProgressMonitor) NULL)      {        MagickBooleanType          proceed;        proceed=SetImageProgress(image,LoadImageTag,(MagickOffsetType) i,          (MagickSizeType) jnx_info.levels);        if (proceed == MagickFalse)          status=MagickFalse;      }  }  (void) CloseBlob(image);  image=DestroyImage(image);  if (images == (Image *) NULL)    return((Image *) NULL);  return(GetFirstImageInList(images));}
开发者ID:edalquist,项目名称:ImageMagick,代码行数:101,


示例14: CompareImageCommand

//.........这里部分代码省略.........    difference_image=CompareImageChannels(image,reconstruct_image,channels,      metric,&distortion,exception);  else    if (similarity_image == (Image *) NULL)      ThrowCompareException(OptionError,"ImageWidthsOrHeightsDiffer",        image->filename)    else      {        Image          *composite_image;        /*          Determine if reconstructed image is a subimage of the image.        */        composite_image=CloneImage(image,0,0,MagickTrue,exception);        if (composite_image == (Image *) NULL)          difference_image=CompareImageChannels(image,reconstruct_image,            channels,metric,&distortion,exception);        else          {            (void) CompositeImage(composite_image,CopyCompositeOp,              reconstruct_image,offset.x,offset.y);            difference_image=CompareImageChannels(image,composite_image,              channels,metric,&distortion,exception);            if (difference_image != (Image *) NULL)              {                difference_image->page.x=offset.x;                difference_image->page.y=offset.y;              }            composite_image=DestroyImage(composite_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);      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);              (void) FormatLocaleFile(stderr,"/n");              break;            }            case AbsoluteErrorMetric:
开发者ID:TimurTarasenko,项目名称:dava.framework,代码行数:67,


示例15: ReadSCREENSHOTImage

//.........这里部分代码省略.........    RGBTRIPLE      *p;    ssize_t      y;    assert(image_info != (const ImageInfo *) NULL);    i=0;    device.cb = sizeof(device);    image=(Image *) NULL;    while(EnumDisplayDevices(NULL,i,&device,0) && ++i)    {      if ((device.StateFlags & DISPLAY_DEVICE_ACTIVE) != DISPLAY_DEVICE_ACTIVE)        continue;      hDC=CreateDC(device.DeviceName,device.DeviceName,NULL,NULL);      if (hDC == (HDC) NULL)        ThrowReaderException(CoderError,"UnableToCreateDC");      screen=AcquireImage(image_info);      screen->columns=(size_t) GetDeviceCaps(hDC,HORZRES);      screen->rows=(size_t) GetDeviceCaps(hDC,VERTRES);      screen->storage_class=DirectClass;      status=SetImageExtent(screen,screen->columns,screen->rows);      if (status == MagickFalse)        {          InheritException(exception,&image->exception);          return(DestroyImageList(image));        }      if (image == (Image *) NULL)        image=screen;      else        AppendImageToList(&image,screen);      bitmapDC=CreateCompatibleDC(hDC);      if (bitmapDC == (HDC) NULL)        {          DeleteDC(hDC);          ThrowReaderException(CoderError,"UnableToCreateDC");        }      (void) ResetMagickMemory(&bmi,0,sizeof(BITMAPINFO));      bmi.bmiHeader.biSize=sizeof(BITMAPINFOHEADER);      bmi.bmiHeader.biWidth=(LONG) screen->columns;      bmi.bmiHeader.biHeight=(-1)*(LONG) screen->rows;      bmi.bmiHeader.biPlanes=1;      bmi.bmiHeader.biBitCount=24;      bmi.bmiHeader.biCompression=BI_RGB;      bitmap=CreateDIBSection(hDC,&bmi,DIB_RGB_COLORS,(void **) &p,NULL,0);      if (bitmap == (HBITMAP) NULL)        {          DeleteDC(hDC);          DeleteDC(bitmapDC);          ThrowReaderException(CoderError,"UnableToCreateBitmap");        }      bitmapOld=(HBITMAP) SelectObject(bitmapDC,bitmap);      if (bitmapOld == (HBITMAP) NULL)        {          DeleteDC(hDC);          DeleteDC(bitmapDC);          DeleteObject(bitmap);          ThrowReaderException(CoderError,"UnableToCreateBitmap");        }      BitBlt(bitmapDC,0,0,(int) screen->columns,(int) screen->rows,hDC,0,0,        SRCCOPY);      (void) SelectObject(bitmapDC,bitmapOld);
开发者ID:INT2208-ST,项目名称:MyFriend,代码行数:67,


示例16: CloneImages

/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%                                                                             %%                                                                             %%                                                                             %%   C l o n e I m a g e s                                                     %%                                                                             %%                                                                             %%                                                                             %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  CloneImages() clones one or more images from an image sequence, using a%  comma separated list of image numbers or ranges.%%  The numbers start at 0 for the first image in the list, while negative%  numbers refer to images starting counting from the end of the range. Images%  may be refered to multiple times to clone them multiple times. Images%  refered beyond the available number of images in list are ignored.%%  Images referenced may be reversed, and results in a clone of those images%  also being made with a reversed order.%%  The format of the CloneImages method is:%%      Image *CloneImages(const Image *images,const char *scenes,%        ExceptionInfo *exception)%%  A description of each parameter follows:%%    o images: the image sequence.%%    o scenes: This character string specifies which scenes to clone%      (e.g. 1,3-5,7-3,2).%%    o exception: return any errors or warnings in this structure.%*/MagickExport Image *CloneImages(const Image *images,const char *scenes,  ExceptionInfo *exception){  char    *p;  const Image    *next;  Image    *clone_images,    *image;  long    first,    last,    step;  register long    i;  size_t    length;  assert(images != (const Image *) NULL);  assert(images->signature == MagickSignature);  assert(scenes != (char *) NULL);  if (images->debug != MagickFalse)    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",images->filename);  assert(exception != (ExceptionInfo *) NULL);  assert(exception->signature == MagickSignature);  clone_images=NewImageList();  images=GetFirstImageInList(images);  length=GetImageListLength(images);  for (p=(char *) scenes; *p != '/0';)  {    while ((isspace((int) ((unsigned char) *p)) != 0) || (*p == ','))      p++;    first=strtol(p,&p,10);    if (first < 0)      first+=(long) length;    last=first;    while (isspace((int) ((unsigned char) *p)) != 0)      p++;    if (*p == '-')      {        last=strtol(p+1,&p,10);        if (last < 0)          last+=(long) length;      }    for (step=first > last ? -1 : 1; first != (last+step); first+=step)    {      i=0;      for (next=images; next != (Image *) NULL; next=GetNextImageInList(next))      {        if (i == first)          {            image=CloneImage(next,0,0,MagickTrue,exception);            if (image == (Image *) NULL)              break;            AppendImageToList(&clone_images,image);          }        i++;//.........这里部分代码省略.........
开发者ID:0xPr0xy,项目名称:ImageMagick,代码行数:101,


示例17: ImportImageCommand

//.........这里部分代码省略.........  resource_value=XGetResourceInstance(resource_database,GetClientName(),    "verbose","False");  image_info->verbose=IsTrue(resource_value);  resource_value=XGetResourceInstance(resource_database,GetClientName(),    "dither","True");  quantize_info->dither=IsTrue(resource_value);  snapshots=1;  status=MagickTrue;  filename=(char *) NULL;  target_window=(char *) NULL;  /*    Check command syntax.  */  for (i=1; i < (long) argc; i++)  {    option=argv[i];    if (LocaleCompare(option,"(") == 0)      {        if (k == MaxImageStackDepth)          ThrowImportException(OptionError,"ParenthesisNestedTooDeeply",            option);        MogrifyImageStack(image_stack[k],MagickTrue,pend);        k++;        image_stack[k]=NewImageList();        continue;      }    if (LocaleCompare(option,")") == 0)      {        if (k == 0)          ThrowImportException(OptionError,"UnableToParseExpression",option);        if (image_stack[k] != (Image *) NULL)          {            MogrifyImageStack(image_stack[k],MagickTrue,MagickTrue);            AppendImageToList(&image_stack[k-1],image_stack[k]);          }        k--;        continue;      }    if (IsMagickOption(option) == MagickFalse)      {        Image          *image;        unsigned long          scene;        /*          Read image from X server.        */        MogrifyImageStack(image_stack[k],MagickFalse,pend);        filename=argv[i];        if (target_window != (char *) NULL)          (void) CopyMagickString(image_info->filename,target_window,            MaxTextExtent);        for (scene=0; scene < (unsigned long) Max(snapshots,1); scene++)        {          (void) sleep(resource_info.pause);          image=XImportImage(image_info,&ximage_info);          status&=(image != (Image *) NULL) &&            (exception->severity < ErrorException);          if (image == (Image *) NULL)            continue;          (void) CopyMagickString(image->filename,filename,MaxTextExtent);          (void) strcpy(image->magick,"PS");          image->scene=scene;          AppendImageToList(&image_stack[k],image);
开发者ID:miettal,项目名称:armadillo420_standard,代码行数:67,


示例18: IdentifyImageCommand

//.........这里部分代码省略.........  */  ReadCommandlLine(argc,&argv);  status=ExpandFilenames(&argc,&argv);  if (status == MagickFalse)    {      char        *message;      message=GetExceptionMessage(errno);      ThrowIdentifyException(ResourceLimitError,"MemoryAllocationFailed",        message);      message=DestroyString(message);    }  for (i=1; i < (long) argc; i++)  {    option=argv[i];    if (LocaleCompare(option,"(") == 0)      {        if (k == MaxImageStackDepth)          ThrowIdentifyException(OptionError,"ParenthesisNestedTooDeeply",            option);        MogrifyImageStack(image_stack[k],MagickTrue,pend);        k++;        image_stack[k]=NewImageList();        continue;      }    if (LocaleCompare(option,")") == 0)      {        if (k == 0)          ThrowIdentifyException(OptionError,"UnableToParseExpression",option);        if (image_stack[k] != (Image *) NULL)          {            MogrifyImageStack(image_stack[k],MagickTrue,MagickTrue);            AppendImageToList(&image_stack[k-1],image_stack[k]);          }        k--;        continue;      }    if (IsMagickOption(option) == MagickFalse)      {        char          *filename;        Image          *image;        ImageInfo          *identify_info;        /*          Read input image.        */        MogrifyImageStack(image_stack[k],MagickFalse,pend);        identify_info=CloneImageInfo(image_info);        identify_info->verbose=MagickFalse;        filename=argv[i];        if ((LocaleCompare(filename,"--") == 0) && (i < (argc-1)))          filename=argv[++i];        (void) CopyMagickString(identify_info->filename,filename,MaxTextExtent);        if (identify_info->ping == MagickFalse)          image=ReadImage(identify_info,exception);        else          image=PingImage(identify_info,exception);        identify_info=DestroyImageInfo(identify_info);        status&=(image != (Image *) NULL) &&          (exception->severity < ErrorException);
开发者ID:vazexqi,项目名称:ParsecPipelineParallelism,代码行数:67,


示例19: tc_filter

//.........这里部分代码省略.........                          exception_info.reason,                          exception_info.description);            strlcpy(mfd->file, "/dev/null", PATH_MAX);            return 0;        }        DestroyImageInfo(image_info);        if (mfd->image->columns > vob->ex_v_width         || mfd->image->rows    > vob->ex_v_height        ) {            tc_log_error(MOD_NAME, "/"%s/" is too large", mfd->file);            return -1;        }        if (vob->im_v_codec == TC_CODEC_YUV420P) {            if ((mfd->image->columns & 1) || (mfd->image->rows & 1)) {                tc_log_error(MOD_NAME, "/"%s/" has odd sizes", mfd->file);                return -1;            }        }        mfd->images = (Image *)GetFirstImageInList(mfd->image);        nimg = NewImageList();        while (mfd->images != (Image *)NULL) {            if (mfd->flip || flip) {                timg = FlipImage(mfd->images, &exception_info);                if (timg == (Image *) NULL) {                    MagickError(exception_info.severity,                                exception_info.reason,                                exception_info.description);                    return -1;                }                AppendImageToList(&nimg, timg);            }            mfd->images = GetNextImageInList(mfd->images);            mfd->nr_of_images++;        }        // check for memleaks;        //DestroyImageList(image);        if (mfd->flip || flip) {            mfd->image = nimg;        }        /* initial delay. real delay = 1/100 sec * delay */        mfd->cur_delay = mfd->image->delay*vob->fps/100;        if (verbose & TC_DEBUG)            tc_log_info(MOD_NAME, "Nr: %d Delay: %d mfd->image->del %lu|",                        mfd->nr_of_images, mfd->cur_delay, mfd->image->delay);        if (vob->im_v_codec == TC_CODEC_YUV420P) {            /* convert Magick RGB image format to YUV */            /* todo: convert the magick image if it's not rgb! (e.g. cmyk) */            Image   *image;            uint8_t *yuv_hqbuf = NULL;            /* Round up for odd-size images */            unsigned long width  = mfd->image->columns;            unsigned long height = mfd->image->rows;            int do_rgbswap  = (rgbswap || mfd->rgbswap);            int i;            /* Allocate buffers for the YUV420P frames. mfd->nr_of_images
开发者ID:BackupTheBerlios,项目名称:tcforge-svn,代码行数:67,


示例20: PrependImageToList

/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%                                                                             %%                                                                             %%                                                                             %%   P r e p e n d I m a g e T o L i s t                                       %%                                                                             %%                                                                             %%                                                                             %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  PrependImageToList() prepends the image to the beginning of the list.%%  The format of the PrependImageToList method is:%%      PrependImageToList(Image *images,Image *image)%%  A description of each parameter follows:%%    o images: the image list.%%    o image: the image.%*/MagickExport void PrependImageToList(Image **images,Image *image){  AppendImageToList(&image,*images);}
开发者ID:0xPr0xy,项目名称:ImageMagick,代码行数:28,


示例21: ReadXCFImage

//.........这里部分代码省略.........      /* read in the layer */      layer_ok=ReadOneLayer(image_info,image,&doc_info,        &layer_info[current_layer],current_layer,exception);      if (layer_ok == MagickFalse)        {          int j;          for (j=0; j < current_layer; j++)            layer_info[j].image=DestroyImage(layer_info[j].image);          layer_info=(XCFLayerInfo *) RelinquishMagickMemory(layer_info);          ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");        }      /* restore the saved position so we'll be ready to      *  read the next offset.      */      offset=SeekBlob(image, saved_pos, SEEK_SET);      current_layer++;    }#if 0        {        /* NOTE: XCF layers are REVERSED from composite order! */        signed int  j;        for (j=number_layers-1; j>=0; j--) {          /* BOGUS: need to consider layer blending modes!! */          if ( layer_info[j].visible ) { /* only visible ones, please! */            CompositeImage(image, OverCompositeOp, layer_info[j].image,                     layer_info[j].offset_x, layer_info[j].offset_y );             layer_info[j].image =DestroyImage( layer_info[j].image );            /* If we do this, we'll get REAL gray images! */            if ( image_type == GIMP_GRAY ) {              QuantizeInfo  qi;              GetQuantizeInfo(&qi);              qi.colorspace = GRAYColorspace;              QuantizeImage( &qi, layer_info[j].image );            }          }        }      }#else      {        /* NOTE: XCF layers are REVERSED from composite order! */        ssize_t  j;        /* now reverse the order of the layers as they are put           into subimages        */        for (j=(ssize_t) number_layers-1; j >= 0; j--)          AppendImageToList(&image,layer_info[j].image);      }#endif    layer_info=(XCFLayerInfo *) RelinquishMagickMemory(layer_info);#if 0  /* BOGUS: do we need the channels?? */    while (MagickTrue)    {      /* read in the offset of the next channel */      info->cp += xcf_read_int32 (info->fp, &offset, 1);      /* if the offset is 0 then we are at the end      *  of the channel list.      */      if (offset == 0)        break;      /* save the current position as it is where the      *  next channel offset is stored.      */      saved_pos = info->cp;      /* seek to the channel offset */      xcf_seek_pos (info, offset);      /* read in the layer */      channel = xcf_load_channel (info, gimage);      if (channel == 0)        goto error;      num_successful_elements++;      /* add the channel to the image if its not the selection */      if (channel != gimage->selection_mask)        gimp_image_add_channel (gimage, channel, -1);      /* restore the saved position so we'll be ready to      *  read the next offset.      */      xcf_seek_pos (info, saved_pos);    }#endif  }  (void) CloseBlob(image);  DestroyImage(RemoveFirstImageFromList(&image));  if (image_type == GIMP_GRAY)    image->type=GrayscaleType;  return(GetFirstImageInList(image));}
开发者ID:278443820,项目名称:ImageMagick,代码行数:101,


示例22: assert

//.........这里部分代码省略.........  int    number_files;  MagickBooleanType    status;  MontageInfo    *montage_info;  RectangleInfo    geometry;  register ssize_t    i;  /*    Expand the filename.  */  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);  filelist=(char **) AcquireAlignedMemory(1,sizeof(*filelist));  if (filelist == (char **) NULL)    ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");  filelist[0]=ConstantString(image_info->filename);  number_files=1;  status=ExpandFilenames(&number_files,&filelist);  if ((status == MagickFalse) || (number_files == 0))    ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");  image=DestroyImage(image);  /*    Read each image and convert them to a tile.  */  images=NewImageList();  read_info=CloneImageInfo(image_info);  SetImageInfoBlob(read_info,(void *) NULL,0);  (void) SetImageInfoProgressMonitor(read_info,(MagickProgressMonitor) NULL,    (void *) NULL);  if (read_info->size == (char *) NULL)    (void) CloneString(&read_info->size,DefaultTileGeometry);  for (i=0; i < (ssize_t) number_files; i++)  {    if (image_info->debug != MagickFalse)      (void) LogMagickEvent(CoderEvent,GetMagickModule(),"name: %s",        filelist[i]);    (void) CopyMagickString(read_info->filename,filelist[i],MaxTextExtent);    filelist[i]=DestroyString(filelist[i]);    *read_info->magick='/0';    next_image=ReadImage(read_info,exception);    CatchException(exception);    if (next_image == (Image *) NULL)      break;    label=InterpretImageProperties(image_info,next_image,DefaultTileLabel);    (void) SetImageProperty(next_image,"label",label);    label=DestroyString(label);    if (image_info->debug != MagickFalse)      (void) LogMagickEvent(CoderEvent,GetMagickModule(),        "geometry: %.20gx%.20g",(double) next_image->columns,(double)        next_image->rows);    SetGeometry(next_image,&geometry);    (void) ParseMetaGeometry(read_info->size,&geometry.x,&geometry.y,      &geometry.width,&geometry.height);    thumbnail_image=ThumbnailImage(next_image,geometry.width,geometry.height,      exception);    if (thumbnail_image != (Image *) NULL)      {        next_image=DestroyImage(next_image);        next_image=thumbnail_image;      }    if (image_info->debug != MagickFalse)      (void) LogMagickEvent(CoderEvent,GetMagickModule(),        "thumbnail geometry: %.20gx%.20g",(double) next_image->columns,(double)        next_image->rows);    AppendImageToList(&images,next_image);    status=SetImageProgress(images,LoadImagesTag,i,number_files);    if (status == MagickFalse)      break;  }  read_info=DestroyImageInfo(read_info);  filelist=(char **) RelinquishMagickMemory(filelist);  if (images == (Image *) NULL)    ThrowReaderException(CorruptImageError,      "ImageFileDoesNotContainAnyImageData");  /*    Create the visual image directory.  */  montage_info=CloneMontageInfo(image_info,(MontageInfo *) NULL);  if (image_info->debug != MagickFalse)    (void) LogMagickEvent(CoderEvent,GetMagickModule(),"creating montage");  montage_image=MontageImageList(image_info,montage_info,    GetFirstImageInList(images),exception);  montage_info=DestroyMontageInfo(montage_info);  images=DestroyImageList(images);  return(montage_image);}
开发者ID:0xPr0xy,项目名称:ImageMagick,代码行数:101,


示例23: assert

MagickExport Image *ChannelFxImage(const Image *image,const char *expression,  ExceptionInfo *exception){#define ChannelFxImageTag  "ChannelFx/Image"  ChannelFx    channel_op;  ChannelType    channel_mask;  char    token[MaxTextExtent];  const char    *p;  const Image    *source_image;  double    pixel;  Image    *destination_image;  MagickBooleanType    status;  PixelChannel    source_channel,    destination_channel;  ssize_t    channels;  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);  source_image=image;  destination_image=CloneImage(source_image,0,0,MagickTrue,exception);  if (destination_image == (Image *) NULL)    return((Image *) NULL);  if (expression == (const char *) NULL)    return(destination_image);  destination_channel=RedPixelChannel;  channel_mask=UndefinedChannel;  pixel=0.0;  p=(char *) expression;  GetMagickToken(p,&p,token);  channel_op=ExtractChannelOp;  for (channels=0; *token != '/0'; )  {    ssize_t      i;    /*      Interpret channel expression.    */    switch (*token)    {      case ',':      {        GetMagickToken(p,&p,token);        break;      }      case '|':      {        if (GetNextImageInList(source_image) != (Image *) NULL)          source_image=GetNextImageInList(source_image);        else          source_image=GetFirstImageInList(source_image);        GetMagickToken(p,&p,token);        break;      }      case ';':      {        Image          *canvas;        SetPixelChannelMask(destination_image,channel_mask);        if ((channel_op == ExtractChannelOp) && (channels == 1))          (void) SetImageColorspace(destination_image,GRAYColorspace,exception);        status=SetImageStorageClass(destination_image,DirectClass,exception);        if (status == MagickFalse)          {            destination_image=DestroyImageList(destination_image);            return(destination_image);          }        canvas=CloneImage(source_image,0,0,MagickTrue,exception);        if (canvas == (Image *) NULL)          {            destination_image=DestroyImageList(destination_image);            return(destination_image);          }        AppendImageToList(&destination_image,canvas);        destination_image=GetLastImageInList(destination_image);//.........这里部分代码省略.........
开发者ID:saitoha,项目名称:ImageMagick-V7-SIXEL,代码行数:101,


示例24: lib_readImages

// GP: mode = -1 will be automatically guessed from the fileSEXPlib_readImages (SEXP files, SEXP mode) {    SEXP res;    int _mode, i, nappends;    Image * image, * images;    ImageInfo * image_info;    ExceptionInfo exception;    const char * file;    ImageType it;    if ( LENGTH(files) < 1 )        error ( "please supply at least one file name or URL" );    _mode = INTEGER (mode)[0];    if ( _mode < -1 || _mode > MODE_MAX)        error ( "requested mode is not supported" );    // Special call for reading Cellomics image    if (LENGTH(files)==1) {      file = CHAR(STRING_ELT(files, 0));      i = strlen(file);      if (i>4 && (strncmp(&file[i-4], ".c01", 4)==0 || strncmp(&file[i-4], ".C01", 4)==0)) {	return (readCellomics(file));      }    }    image_info = (ImageInfo *) NULL;    /* images loaded into image and moved into this list */    images = NewImageList ();    GetExceptionInfo (&exception);    image_info = CloneImageInfo ( (ImageInfo *)NULL );    nappends = 0;    for ( i = 0; i < LENGTH (files); i++ ) {        if ( LENGTH (files) > 1 )            file = CHAR ( STRING_ELT(files, i) );        else            file = CHAR ( asChar(files) );        strcpy (image_info->filename, file);	// Prevent an ImageMagick bug when file is an empty string or NULL	if (file==NULL) image=NULL;	else if (strlen(file)==0) image=NULL;	else {	  image = ReadImage (image_info, &exception);	  CatchException (&exception);	}        if ( image == (Image *)NULL ) {            warning ("requested image not found or could not be loaded" );            continue;        }	// Automatic color mode guess	if (_mode==-1) {	  it = GetImageType(image,&exception);	  // Rprintf("it=%d G=%d P=%d PM=%d/n",it, GrayscaleType, PaletteType, PaletteMatteType);	  if (it==BilevelType || it==GrayscaleType || it==GrayscaleMatteType) _mode=MODE_GRAYSCALE;	  else _mode=MODE_COLOR;	}               /* do not destroy image here */        AppendImageToList (&images, image);        if ( nappends == 0 ) {            /* set all attributes from the first image */            strcpy (images->filename, image->filename);            images->compression = image->compression;            images->x_resolution = image->x_resolution;            images->y_resolution = image->y_resolution;        }        nappends++;    }    /* do not update image properties here because if no image was added to    the list it will cause segfault, or use GetImageListLength first to check size */    image_info = DestroyImageInfo (image_info);    /* convert image list into R object */    res = PROTECT(magick2SEXP (images, _mode));    images = DestroyImageList (images);    DestroyExceptionInfo(&exception);    UNPROTECT(1);    return res;}
开发者ID:kevin-keraudren,项目名称:cell-segmentation,代码行数:86,


示例25: ReadMPEGImage

/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%                                                                             %%                                                                             %%                                                                             %%   R e a d M P E G I m a g e                                                 %%                                                                             %%                                                                             %%                                                                             %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  ReadMPEGImage() reads an binary file in the MPEG video stream format%  and returns it.  It allocates the memory necessary for the new Image%  structure and returns a pointer to the new image.  This method differs from%  the other decoder methods in that only the Photoshop resource (MPEG)%  information is useful in the returned image.%%  The format of the ReadMPEGImage method is:%%      Image *ReadMPEGImage(const ImageInfo *image_info,%        ExceptionInfo *exception)%%  A description of each parameter follows:%%    o image_info: The image info.%%    o exception: return any errors or warnings in this structure.%%*/static Image *ReadMPEGImage(const ImageInfo *image_info,  ExceptionInfo *exception){  Image    *image,    *images;  ImageInfo    *read_info;  MagickBooleanType    status;  register long    i;  /*    Open image file.  */  assert(image_info != (const ImageInfo *) NULL);  assert(image_info->signature == MagickSignature);  if (image_info->debug != MagickFalse)    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",      image_info->filename);  assert(exception != (ExceptionInfo *) NULL);  assert(exception->signature == MagickSignature);  image=AllocateImage(image_info);  status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception);  if (status == MagickFalse)    {      image=DestroyImageList(image);      return((Image *) NULL);    }  CloseBlob(image);  DestroyImageList(image);  /*    Convert MPEG to PPM with delegate.  */  image=AllocateImage(image_info);  read_info=CloneImageInfo(image_info);  (void) InvokeDelegate(read_info,image,"mpeg-decode",(char *) NULL,exception);  image=DestroyImage(image);  /*    Read PPM files.  */  images=NewImageList();  for (i=(long) read_info->scene; ; i++)  {    (void) FormatMagickString(read_info->filename,MaxTextExtent,      "%s%ld.ppm",read_info->unique,i);    if (IsAccessible(read_info->filename) == MagickFalse)      break;    image=ReadImage(read_info,exception);    if (image == (Image *) NULL)      break;    (void) strcpy(image->magick,image_info->magick);    image->scene=(unsigned long) i;    AppendImageToList(&images,image);    if (read_info->number_scenes != 0)      if (i >= (long) (read_info->scene+read_info->number_scenes-1))        break;  }  /*    Free resources.  */  for (i=0; ; i++)  {    (void) FormatMagickString(read_info->filename,MaxTextExtent,      "%s%ld.ppm",read_info->unique,i);    if (IsAccessible(read_info->filename) == MagickFalse)//.........这里部分代码省略.........
开发者ID:miettal,项目名称:armadillo420_standard,代码行数:101,



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


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