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

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

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

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

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

示例1: KOMPEX_EXCEPT

void SQLiteBlob::WriteBlob(const void *buffer, int numberOfBytes, int offset){	if(mBlobHandle == 0)		KOMPEX_EXCEPT("WriteBlob() no open BLOB handle", -1);	if((offset + numberOfBytes) > GetBlobSize())		KOMPEX_EXCEPT("WriteBlob() offset and numberOfBytes exceed the BLOB size", -1);	switch(sqlite3_blob_write(mBlobHandle, buffer, numberOfBytes, offset))	{		case SQLITE_OK:			break;		case SQLITE_ABORT:			KOMPEX_EXCEPT("WriteBlob() BLOB handle expired - can not write BLOB", -1);		default:			KOMPEX_EXCEPT(sqlite3_errmsg(mDatabase->GetDatabaseHandle()), sqlite3_errcode(mDatabase->GetDatabaseHandle()));	}}
开发者ID:Aethelflaed,项目名称:kompex-sqlite-wrapper,代码行数:17,


示例2: assert

//.........这里部分代码省略.........  if ((image_info->ping != MagickFalse) && (image_info->number_scenes != 0))      if (image->scene >= (image_info->scene+image_info->number_scenes-1))        break;/*   printf("Length: %.20g, Memory size: %.20g/n", (double) length,(double)     image->depth);*/     quantum_info=AcquireQuantumInfo(image_info,image);     if (quantum_info == (QuantumInfo *) NULL)       ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");     status=SetQuantumFormat(image,quantum_info,quantum_format);     if (status == MagickFalse)       ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");     pixels=GetQuantumPixels(quantum_info);      if(image->columns != ipl_info.width){/*     printf("Columns not set correctly!  Wanted: %.20g, got: %.20g/n",       (double) ipl_info.width, (double) image->columns);*/     }    /*     Covert IPL binary to pixel packets     */      if(ipl_info.colors == 1){      for(y = 0; y < (ssize_t) image->rows; y++){        (void) ReadBlob(image, length*image->depth/8, pixels);        q=QueueAuthenticPixels(image,0,y,image->columns,1,exception);        if (q == (PixelPacket *) NULL)                break;        (void) ImportQuantumPixels(image,(CacheView *) NULL,quantum_info,          GrayQuantum,pixels,exception);        if (SyncAuthenticPixels(image,exception) == MagickFalse)          break;    }  }  else{      for(y = 0; y < (ssize_t) image->rows; y++){        (void) ReadBlob(image, length*image->depth/8, pixels);        q=QueueAuthenticPixels(image,0,y,image->columns,1,exception);        if (q == (PixelPacket *) NULL)                break;        (void) ImportQuantumPixels(image,(CacheView *) NULL,quantum_info,          RedQuantum,pixels,exception);          if (SyncAuthenticPixels(image,exception) == MagickFalse)          break;      }      for(y = 0; y < (ssize_t) image->rows; y++){        (void) ReadBlob(image, length*image->depth/8, pixels);        q=QueueAuthenticPixels(image,0,y,image->columns,1,exception);        if (q == (PixelPacket *) NULL)          break;        (void) ImportQuantumPixels(image,(CacheView *) NULL,quantum_info,          GreenQuantum,pixels,exception);        if (SyncAuthenticPixels(image,exception) == MagickFalse)          break;      }      for(y = 0; y < (ssize_t) image->rows; y++){        (void) ReadBlob(image, length*image->depth/8, pixels);        q=QueueAuthenticPixels(image,0,y,image->columns,1,exception);        if (q == (PixelPacket *) NULL)          break;        (void) ImportQuantumPixels(image,(CacheView *) NULL,quantum_info,          BlueQuantum,pixels,exception);        if (SyncAuthenticPixels(image,exception) == MagickFalse)          break;      }   }   SetQuantumImageType(image,quantum_type);     t_count++;  quantum_info = DestroyQuantumInfo(quantum_info);    if (EOFBlob(image) != MagickFalse)    {      ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile",                 image->filename);      break;    }   if(t_count < ipl_info.z * ipl_info.time){      /*       Proceed to next image.       */      AcquireNextImage(image_info, image);      if (GetNextImageInList(image) == (Image *) NULL)      {        image=DestroyImageList(image);        return((Image *) NULL);      }      image=SyncNextImageInList(image);       status=SetImageProgress(image,LoadImagesTag,TellBlob(image),        GetBlobSize(image));      if (status == MagickFalse)        break;    }  } while (t_count < ipl_info.z*ipl_info.time);  CloseBlob(image);  return(GetFirstImageInList(image));}
开发者ID:0xPr0xy,项目名称:ImageMagick,代码行数:101,


示例3: ReadTIMImage

//.........这里部分代码省略.........      }      case 16:      {        /*          Convert DirectColor scanline.        */        for (y=(ssize_t) image->rows-1; y >= 0; y--)        {          p=tim_pixels+y*bytes_per_line;          q=QueueAuthenticPixels(image,0,y,image->columns,1,exception);          if (q == (Quantum *) NULL)            break;          for (x=0; x < (ssize_t) image->columns; x++)          {            word=(*p++);            word|=(*p++ << 8);            SetPixelBlue(image,ScaleCharToQuantum(ScaleColor5to8(              (1UL*word >> 10) & 0x1f)),q);            SetPixelGreen(image,ScaleCharToQuantum(ScaleColor5to8(              (1UL*word >> 5) & 0x1f)),q);            SetPixelRed(image,ScaleCharToQuantum(ScaleColor5to8(              (1UL*word >> 0) & 0x1f)),q);            q+=GetPixelChannels(image);          }          if (SyncAuthenticPixels(image,exception) == MagickFalse)            break;          if (image->previous == (Image *) NULL)            {              status=SetImageProgress(image,LoadImageTag,(MagickOffsetType) y,                image->rows);              if (status == MagickFalse)                break;            }        }        break;      }      case 24:      {        /*          Convert DirectColor scanline.        */        for (y=(ssize_t) image->rows-1; y >= 0; y--)        {          p=tim_pixels+y*bytes_per_line;          q=QueueAuthenticPixels(image,0,y,image->columns,1,exception);          if (q == (Quantum *) NULL)            break;          for (x=0; x < (ssize_t) image->columns; x++)          {            SetPixelRed(image,ScaleCharToQuantum(*p++),q);            SetPixelGreen(image,ScaleCharToQuantum(*p++),q);            SetPixelBlue(image,ScaleCharToQuantum(*p++),q);            q+=GetPixelChannels(image);          }          if (SyncAuthenticPixels(image,exception) == MagickFalse)            break;          if (image->previous == (Image *) NULL)            {              status=SetImageProgress(image,LoadImageTag,(MagickOffsetType) y,                image->rows);              if (status == MagickFalse)                break;            }        }        break;      }      default:        ThrowReaderException(CorruptImageError,"ImproperImageHeader");    }    if (image->storage_class == PseudoClass)      (void) SyncImage(image,exception);    tim_pixels=(unsigned char *) RelinquishMagickMemory(tim_pixels);    if (EOFBlob(image) != MagickFalse)      {        ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile",          image->filename);        break;      }    /*      Proceed to next image.    */    tim_info.id=ReadBlobLSBLong(image);    if (tim_info.id == 0x00000010)      {        /*          Allocate next image structure.        */        AcquireNextImage(image_info,image,exception);        if (GetNextImageInList(image) == (Image *) NULL)          {            image=DestroyImageList(image);            return((Image *) NULL);          }        image=SyncNextImageInList(image);        status=SetImageProgress(image,LoadImagesTag,TellBlob(image),          GetBlobSize(image));        if (status == MagickFalse)          break;      }  } while (tim_info.id == 0x00000010);
开发者ID:ChaseReid,项目名称:ImageMagick,代码行数:101,


示例4: ReadAVSImage

//.........这里部分代码省略.........      image_info->filename);  assert(exception != (ExceptionInfo *) NULL);  assert(exception->signature == MagickSignature);  image=AcquireImage(image_info);  status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception);  if (status == MagickFalse)    {      image=DestroyImageList(image);      return((Image *) NULL);    }  /*    Read AVS X image.  */  width=ReadBlobMSBLong(image);  height=ReadBlobMSBLong(image);  if (EOFBlob(image) != MagickFalse)    ThrowReaderException(CorruptImageError,"ImproperImageHeader");  if ((width == 0UL) || (height == 0UL))    ThrowReaderException(CorruptImageError,"ImproperImageHeader");  do  {    /*      Convert AVS raster image to pixel packets.    */    image->columns=width;    image->rows=height;    image->depth=8;    if ((image_info->ping != MagickFalse) && (image_info->number_scenes != 0))      if (image->scene >= (image_info->scene+image_info->number_scenes-1))        break;    pixels=(unsigned char *) AcquireQuantumMemory(image->columns,      4*sizeof(*pixels));    if (pixels == (unsigned char *) NULL)       ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");    length=(size_t) 4*image->columns;    for (y=0; y < (ssize_t) image->rows; y++)    {      count=ReadBlob(image,length,pixels);      if ((size_t) count != length)        ThrowReaderException(CorruptImageError,"UnableToReadImageData");      p=pixels;      q=QueueAuthenticPixels(image,0,y,image->columns,1,exception);      if (q == (PixelPacket *) NULL)        break;      for (x=0; x < (ssize_t) image->columns; x++)      {        SetPixelAlpha(q,ScaleCharToQuantum(*p++));        SetPixelRed(q,ScaleCharToQuantum(*p++));        SetPixelGreen(q,ScaleCharToQuantum(*p++));        SetPixelBlue(q,ScaleCharToQuantum(*p++));        if (q->opacity != OpaqueOpacity)          image->matte=MagickTrue;        q++;      }      if (SyncAuthenticPixels(image,exception) == MagickFalse)        break;      if (image->previous == (Image *) NULL)        {          status=SetImageProgress(image,LoadImageTag,(MagickOffsetType) y,            image->rows);          if (status == MagickFalse)            break;        }    }    pixels=(unsigned char *) RelinquishMagickMemory(pixels);    if (EOFBlob(image) != MagickFalse)      {        ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile",          image->filename);        break;      }    /*      Proceed to next image.    */    if (image_info->number_scenes != 0)      if (image->scene >= (image_info->scene+image_info->number_scenes-1))        break;    width=ReadBlobMSBLong(image);    height=ReadBlobMSBLong(image);    if ((width != 0UL) && (height != 0UL))      {        /*          Allocate next image structure.        */        AcquireNextImage(image_info,image);        if (GetNextImageInList(image) == (Image *) NULL)          {            image=DestroyImageList(image);            return((Image *) NULL);          }        image=SyncNextImageInList(image);        status=SetImageProgress(image,LoadImagesTag,TellBlob(image),          GetBlobSize(image));        if (status == MagickFalse)          break;      }  } while ((width != 0UL) && (height != 0UL));  (void) CloseBlob(image);  return(GetFirstImageInList(image));}
开发者ID:0xPr0xy,项目名称:ImageMagick,代码行数:101,


示例5: ReadTEXTImage

//.........这里部分代码省略.........    {      ImageInfo        *read_info;      read_info=CloneImageInfo(image_info);      SetImageInfoBlob(read_info,(void *) NULL,0);      (void) CopyMagickString(read_info->filename,image_info->texture,        MaxTextExtent);      texture=ReadImage(read_info,exception);      read_info=DestroyImageInfo(read_info);    }  /*    Annotate the text image.  */  (void) SetImageBackgroundColor(image);  draw_info=CloneDrawInfo(image_info,(DrawInfo *) NULL);  (void) CloneString(&draw_info->text,image_info->filename);  (void) FormatLocaleString(geometry,MaxTextExtent,"0x0%+ld%+ld",(long) page.x,    (long) page.y);  (void) CloneString(&draw_info->geometry,geometry);  status=GetTypeMetrics(image,draw_info,&metrics);  if (status == MagickFalse)    ThrowReaderException(TypeError,"UnableToGetTypeMetrics");  page.y=(ssize_t) ceil((double) page.y+metrics.ascent-0.5);  (void) FormatLocaleString(geometry,MaxTextExtent,"0x0%+ld%+ld",(long) page.x,    (long) page.y);  (void) CloneString(&draw_info->geometry,geometry);  (void) CopyMagickString(filename,image_info->filename,MaxTextExtent);  if (*draw_info->text != '/0')    *draw_info->text='/0';  p=text;  for (offset=2*page.y; p != (char *) NULL; )  {    /*      Annotate image with text.    */    (void) ConcatenateString(&draw_info->text,text);    (void) ConcatenateString(&draw_info->text,"/n");    offset+=(ssize_t) (metrics.ascent-metrics.descent);    if (image->previous == (Image *) NULL)      {        status=SetImageProgress(image,LoadImageTag,offset,image->rows);        if (status == MagickFalse)          break;      }    p=ReadBlobString(image,text);    if ((offset < (ssize_t) image->rows) && (p != (char *) NULL))      continue;    if (texture != (Image *) NULL)      {        MagickProgressMonitor          progress_monitor;        progress_monitor=SetImageProgressMonitor(image,          (MagickProgressMonitor) NULL,image->client_data);        (void) TextureImage(image,texture);        (void) SetImageProgressMonitor(image,progress_monitor,          image->client_data);      }    (void) AnnotateImage(image,draw_info);    if (p == (char *) NULL)      break;    /*      Page is full-- allocate next image structure.    */    *draw_info->text='/0';    offset=2*page.y;    AcquireNextImage(image_info,image);    if (GetNextImageInList(image) == (Image *) NULL)      {        image=DestroyImageList(image);        return((Image *) NULL);      }    image->next->columns=image->columns;    image->next->rows=image->rows;    image=SyncNextImageInList(image);    (void) CopyMagickString(image->filename,filename,MaxTextExtent);    (void) SetImageBackgroundColor(image);    status=SetImageProgress(image,LoadImagesTag,TellBlob(image),      GetBlobSize(image));    if (status == MagickFalse)      break;  }  if (texture != (Image *) NULL)    {      MagickProgressMonitor        progress_monitor;      progress_monitor=SetImageProgressMonitor(image,        (MagickProgressMonitor) NULL,image->client_data);      (void) TextureImage(image,texture);      (void) SetImageProgressMonitor(image,progress_monitor,image->client_data);    }  (void) AnnotateImage(image,draw_info);  if (texture != (Image *) NULL)    texture=DestroyImage(texture);  draw_info=DestroyDrawInfo(draw_info);  (void) CloseBlob(image);  return(GetFirstImageInList(image));}
开发者ID:GalliumOS,项目名称:imagemagick,代码行数:101,


示例6: assert

//.........这里部分代码省略.........          (void) ImportImagePixelArea(image,BlackQuantum,quantum_size,scanline+x,				      &import_options,0);          if (!SyncImagePixels(image))            break;          if (image->previous == (Image *) NULL)            if (QuantumTick(i,span))              if (!MagickMonitorFormatted(i,span,&image->exception,                                          LoadImageText,image->filename,					  image->columns,image->rows))                break;          i++;        }        count=image->tile_info.height-image->rows-image->tile_info.y;        for (i=0; i < (long) count; i++)          (void) ReadBlob(image,packet_size*image->tile_info.width,scanline);        if (image->matte)          {            /*              Read matte channel.            */            if (image_info->interlace == PartitionInterlace)              {                CloseBlob(image);                AppendImageFormat("A",image->filename);                status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception);                if (status == False)                  ThrowReaderException(FileOpenError,UnableToOpenFile,image);              }            for (y=0; y < image->tile_info.y; y++)              (void) ReadBlob(image,packet_size*image->tile_info.width,                scanline);            for (y=0; y < (long) image->rows; y++)            {              (void) ReadBlob(image,packet_size*image->tile_info.width,                scanline);              q=GetImagePixels(image,0,y,image->columns,1);              if (q == (PixelPacket *) NULL)                break;              (void) ImportImagePixelArea(image,AlphaQuantum,quantum_size,scanline+x,					  &import_options,0);              if (!SyncImagePixels(image))                break;              if (image->previous == (Image *) NULL)                if (QuantumTick(i,span))                  if (!MagickMonitorFormatted(i,span,&image->exception,                                              LoadImageText,image->filename,					      image->columns,image->rows))                    break;              i++;            }            count=image->tile_info.height-image->rows-image->tile_info.y;            for (i=0; i < (long) count; i++)              (void) ReadBlob(image,packet_size*image->tile_info.width,                scanline);          }        if (image_info->interlace == PartitionInterlace)          (void) strlcpy(image->filename,image_info->filename,MaxTextExtent);        break;      }    }    if (EOFBlob(image))      {        ThrowException(exception,CorruptImageError,UnexpectedEndOfFile,          image->filename);        break;      }    /*      Proceed to next image.    */    if (image_info->subrange != 0)      if (image->scene >= (image_info->subimage+image_info->subrange-1))        break;    if (image_info->interlace == PartitionInterlace)      break;    count=ReadBlob(image,packet_size*image->tile_info.width,scanline);    if (count != 0)      {        /*          Allocate next image structure.        */        AllocateNextImage(image_info,image);        if (image->next == (Image *) NULL)          {            DestroyImageList(image);            return((Image *) NULL);          }        image=SyncNextImageInList(image);        status=MagickMonitorFormatted(TellBlob(image),GetBlobSize(image),                                      exception,LoadImagesText,                                      image->filename);        if (status == False)          break;      }  } while (count != 0);  MagickFreeMemory(scanline);  while (image->previous != (Image *) NULL)    image=image->previous;  CloseBlob(image);  return(image);}
开发者ID:CliffsDover,项目名称:graphicsmagick,代码行数:101,


示例7: ReadRLEImage

//.........这里部分代码省略.........              p++;            }        p=pixels;        if (image->matte == MagickFalse)          {            /*              Convert raster image to PseudoClass pixel packets.            */            for (y=0; y < (ssize_t) image->rows; y++)            {              q=QueueAuthenticPixels(image,0,y,image->columns,1,exception);              if (q == (PixelPacket *) NULL)                break;              indexes=GetAuthenticIndexQueue(image);              for (x=0; x < (ssize_t) image->columns; x++)                SetPixelIndex(indexes+x,*p++);              if (SyncAuthenticPixels(image,exception) == MagickFalse)                break;              if (image->previous == (Image *) NULL)                {                  status=SetImageProgress(image,LoadImageTag,(MagickOffsetType)                    y,image->rows);                  if (status == MagickFalse)                    break;                }            }            (void) SyncImage(image);          }        else          {            /*              Image has a matte channel-- promote to DirectClass.            */            for (y=0; y < (ssize_t) image->rows; y++)            {              q=QueueAuthenticPixels(image,0,y,image->columns,1,exception);              if (q == (PixelPacket *) NULL)                break;              for (x=0; x < (ssize_t) image->columns; x++)              {                SetPixelRed(q,image->colormap[*p++].red);                SetPixelGreen(q,image->colormap[*p++].green);                SetPixelBlue(q,image->colormap[*p++].blue);                SetPixelAlpha(q,ScaleCharToQuantum(*p++));                q++;              }              if (SyncAuthenticPixels(image,exception) == MagickFalse)                break;              if (image->previous == (Image *) NULL)                {                  status=SetImageProgress(image,LoadImageTag,(MagickOffsetType)                    y,image->rows);                  if (status == MagickFalse)                    break;                }            }            image->colormap=(PixelPacket *) RelinquishMagickMemory(              image->colormap);            image->storage_class=DirectClass;            image->colors=0;          }      }    if (number_colormaps != 0)      colormap=(unsigned char *) RelinquishMagickMemory(colormap);    pixel_info=RelinquishVirtualMemory(pixel_info);    if (EOFBlob(image) != MagickFalse)      {        ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile",          image->filename);        break;      }    /*      Proceed to next image.    */    if (image_info->number_scenes != 0)      if (image->scene >= (image_info->scene+image_info->number_scenes-1))        break;    (void) ReadBlobByte(image);    count=ReadBlob(image,2,(unsigned char *) magick);    if ((count != 0) && (memcmp(magick,"/122/314",2) == 0))      {        /*          Allocate next image structure.        */        AcquireNextImage(image_info,image);        if (GetNextImageInList(image) == (Image *) NULL)          {            image=DestroyImageList(image);            return((Image *) NULL);          }        image=SyncNextImageInList(image);        status=SetImageProgress(image,LoadImagesTag,TellBlob(image),          GetBlobSize(image));        if (status == MagickFalse)          break;      }  } while ((count != 0) && (memcmp(magick,"/122/314",2) == 0));  (void) CloseBlob(image);  return(GetFirstImageInList(image));}
开发者ID:UIKit0,项目名称:YoyaMagick,代码行数:101,


示例8: assert

static Image *ReadSFWImage(const ImageInfo *image_info,ExceptionInfo *exception){  static unsigned char    HuffmanTable[] =    {      0xFF, 0xC4, 0x01, 0xA2, 0x00, 0x00, 0x01, 0x05, 0x01, 0x01, 0x01,      0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,      0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B,      0x01, 0x00, 0x03, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,      0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04,      0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x10, 0x00, 0x02, 0x01,      0x03, 0x03, 0x02, 0x04, 0x03, 0x05, 0x05, 0x04, 0x04, 0x00, 0x00,      0x01, 0x7D, 0x01, 0x02, 0x03, 0x00, 0x04, 0x11, 0x05, 0x12, 0x21,      0x31, 0x41, 0x06, 0x13, 0x51, 0x61, 0x07, 0x22, 0x71, 0x14, 0x32,      0x81, 0x91, 0xA1, 0x08, 0x23, 0x42, 0xB1, 0xC1, 0x15, 0x52, 0xD1,      0xF0, 0x24, 0x33, 0x62, 0x72, 0x82, 0x09, 0x0A, 0x16, 0x17, 0x18,      0x19, 0x1A, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x34, 0x35, 0x36,      0x37, 0x38, 0x39, 0x3A, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49,      0x4A, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x63, 0x64,      0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x73, 0x74, 0x75, 0x76, 0x77,      0x78, 0x79, 0x7A, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A,      0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0xA2, 0xA3,      0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xB2, 0xB3, 0xB4, 0xB5,      0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7,      0xC8, 0xC9, 0xCA, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9,      0xDA, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA,      0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0x11,      0x00, 0x02, 0x01, 0x02, 0x04, 0x04, 0x03, 0x04, 0x07, 0x05, 0x04,      0x04, 0x00, 0x01, 0x02, 0x77, 0x00, 0x01, 0x02, 0x03, 0x11, 0x04,      0x05, 0x21, 0x31, 0x06, 0x12, 0x41, 0x51, 0x07, 0x61, 0x71, 0x13,      0x22, 0x32, 0x81, 0x08, 0x14, 0x42, 0x91, 0xA1, 0xB1, 0xC1, 0x09,      0x23, 0x33, 0x52, 0xF0, 0x15, 0x62, 0x72, 0xD1, 0x0A, 0x16, 0x24,      0x34, 0xE1, 0x25, 0xF1, 0x17, 0x18, 0x19, 0x1A, 0x26, 0x27, 0x28,      0x29, 0x2A, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x43, 0x44, 0x45,      0x46, 0x47, 0x48, 0x49, 0x4A, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58,      0x59, 0x5A, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x73,      0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0x82, 0x83, 0x84, 0x85,      0x86, 0x87, 0x88, 0x89, 0x8A, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,      0x98, 0x99, 0x9A, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9,      0xAA, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xC2,      0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xD2, 0xD3, 0xD4,      0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6,      0xE7, 0xE8, 0xE9, 0xEA, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8,      0xF9, 0xFA    };  FILE    *file;  Image    *flipped_image,    *image;  ImageInfo    *clone_info;  register unsigned char    *header,    *data;  size_t    count;  unsigned char    *buffer,    *offset;  unsigned int    status;  /*    Open image file.  */  assert(image_info != (const ImageInfo *) NULL);  assert(image_info->signature == MagickSignature);  assert(exception != (ExceptionInfo *) NULL);  assert(exception->signature == MagickSignature);  image=AllocateImage(image_info);  status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception);  if (status == False)    ThrowReaderException(FileOpenError,UnableToOpenFile,image);  /*    Read image into a buffer.  */  buffer=MagickAllocateMemory(unsigned char *,(size_t) GetBlobSize(image));  if (buffer == (unsigned char *) NULL)    ThrowReaderException(ResourceLimitError,MemoryAllocationFailed,image);  count=ReadBlob(image,(size_t) GetBlobSize(image),(char *) buffer);  if ((count == 0) || (LocaleNCompare((char *) buffer,"SFW",3) != 0))    ThrowReaderException(CorruptImageError,ImproperImageHeader,image);  CloseBlob(image);  DestroyImage(image);  /*    Find the start of the JFIF data  */  header=SFWScan(buffer,buffer+GetBlobSize(image)-1,(unsigned char *)    "/377/310/377/320",4);  if (header == (unsigned char *) NULL)    {      MagickFreeMemory(buffer);//.........这里部分代码省略.........
开发者ID:airhuman,项目名称:cwf,代码行数:101,


示例9: ReadRAWImage

//.........这里部分代码省略.........      if (image->scene >= (image_info->scene+image_info->number_scenes-1))        break;    status=SetImageExtent(image,image->columns,image->rows);    if (status == MagickFalse)      {        InheritException(exception,&image->exception);        return(DestroyImageList(image));      }    if (scene == 0)      {        length=GetQuantumExtent(canvas_image,quantum_info,quantum_type);        pixels=(const unsigned char *) ReadBlobStream(image,length,          GetQuantumPixels(quantum_info),&count);      }    for (y=0; y < (ssize_t) image->extract_info.height; y++)    {      register const PixelPacket        *magick_restrict p;      register PixelPacket        *magick_restrict q;      register ssize_t        x;      if (count != (ssize_t) length)        {          ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile",            image->filename);          break;        }      q=GetAuthenticPixels(canvas_image,0,0,canvas_image->columns,1,exception);      if (q == (PixelPacket *) NULL)        break;      length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,quantum_info,        quantum_type,pixels,exception);      if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)        break;      if (((y-image->extract_info.y) >= 0) &&          ((y-image->extract_info.y) < (ssize_t) image->rows))        {          p=GetVirtualPixels(canvas_image,canvas_image->extract_info.x,0,            image->columns,1,exception);          q=QueueAuthenticPixels(image,0,y-image->extract_info.y,image->columns,            1,exception);          if ((p == (const PixelPacket *) NULL) || (q == (PixelPacket *) NULL))            break;          for (x=0; x < (ssize_t) image->columns; x++)          {            SetPixelRed(q,GetPixelRed(p));            SetPixelGreen(q,GetPixelGreen(p));            SetPixelBlue(q,GetPixelBlue(p));            p++;            q++;          }          if (SyncAuthenticPixels(image,exception) == MagickFalse)            break;        }      if (image->previous == (Image *) NULL)        {          status=SetImageProgress(image,LoadImageTag,(MagickOffsetType) y,            image->rows);          if (status == MagickFalse)            break;        }      pixels=(const unsigned char *) ReadBlobStream(image,length,        GetQuantumPixels(quantum_info),&count);    }    SetQuantumImageType(image,quantum_type);    /*      Proceed to next image.    */    if (image_info->number_scenes != 0)      if (image->scene >= (image_info->scene+image_info->number_scenes-1))        break;    if (count == (ssize_t) length)      {        /*          Allocate next image structure.        */        AcquireNextImage(image_info,image);        if (GetNextImageInList(image) == (Image *) NULL)          {            image=DestroyImageList(image);            return((Image *) NULL);          }        image=SyncNextImageInList(image);        status=SetImageProgress(image,LoadImagesTag,TellBlob(image),          GetBlobSize(image));        if (status == MagickFalse)          break;      }    scene++;  } while (count == (ssize_t) length);  quantum_info=DestroyQuantumInfo(quantum_info);  InheritException(&image->exception,&canvas_image->exception);  canvas_image=DestroyImage(canvas_image);  (void) CloseBlob(image);  return(GetFirstImageInList(image));}
开发者ID:INT2208-ST,项目名称:MyFriend,代码行数:101,


示例10: ReadPCXImage

//.........这里部分代码省略.........                p++;              }              if ((image->columns % 4) != 0)                {                  for (i=3; i >= (ssize_t) (4-(image->columns % 4)); i--)                    *r++=(unsigned char) ((*p >> (i*2)) & 0x03);                  p++;                }              break;            }            case 4:            {              for (x=0; x < ((ssize_t) image->columns-1); x+=2)              {                *r++=(*p >> 4) & 0xf;                *r++=(*p) & 0xf;                p++;              }              if ((image->columns % 2) != 0)                *r++=(*p++ >> 4) & 0xf;              break;            }            case 8:            {              (void) CopyMagickMemory(r,p,image->columns);              break;            }            default:              break;          }      /*        Transfer image scanline.      */      r=scanline;      for (x=0; x < (ssize_t) image->columns; x++)      {        if (image->storage_class == PseudoClass)          SetPixelIndex(image,*r++,q);        else          {            SetPixelRed(image,ScaleCharToQuantum(*r++),q);            SetPixelGreen(image,ScaleCharToQuantum(*r++),q);            SetPixelBlue(image,ScaleCharToQuantum(*r++),q);            if (image->alpha_trait != UndefinedPixelTrait)              SetPixelAlpha(image,ScaleCharToQuantum(*r++),q);          }        q+=GetPixelChannels(image);      }      if (SyncAuthenticPixels(image,exception) == MagickFalse)        break;      if (image->previous == (Image *) NULL)        {          status=SetImageProgress(image,LoadImageTag,(MagickOffsetType) y,            image->rows);          if (status == MagickFalse)            break;        }    }    if (image->storage_class == PseudoClass)      (void) SyncImage(image,exception);    scanline=(unsigned char *) RelinquishMagickMemory(scanline);    pixel_info=RelinquishVirtualMemory(pixel_info);    if (EOFBlob(image) != MagickFalse)      {        ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile",          image->filename);        break;      }    /*      Proceed to next image.    */    if (image_info->number_scenes != 0)      if (image->scene >= (image_info->scene+image_info->number_scenes-1))        break;    if (page_table == (MagickOffsetType *) NULL)      break;    if (page_table[id] == 0)      break;    offset=SeekBlob(image,(MagickOffsetType) page_table[id],SEEK_SET);    if (offset < 0)      ThrowReaderException(CorruptImageError,"ImproperImageHeader");    count=ReadBlob(image,1,&pcx_info.identifier);    if ((count != 0) && (pcx_info.identifier == 0x0a))      {        /*          Allocate next image structure.        */        AcquireNextImage(image_info,image,exception);        if (GetNextImageInList(image) == (Image *) NULL)          {            image=DestroyImageList(image);            return((Image *) NULL);          }        image=SyncNextImageInList(image);        status=SetImageProgress(image,LoadImagesTag,TellBlob(image),          GetBlobSize(image));        if (status == MagickFalse)          break;      }  }
开发者ID:278443820,项目名称:ImageMagick,代码行数:101,


示例11: assert

/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%                                                                             %%                                                                             %%                                                                             %%   R e a d A R T I m a g e                                                   %%                                                                             %%                                                                             %%                                                                             %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  Method ReadARTImage reads an ART X image file and returns it.  It%  allocates the memory necessary for the new Image structure and returns a%  pointer to the new image.%%  The format of the ReadARTImage method is:%%      Image *ReadARTImage(const ImageInfo *image_info,ExceptionInfo *exception)%%  A description of each parameter follows:%%    o image:  Method ReadARTImage returns a pointer to the image after%      reading. A null image is returned if there is a memory shortage or if%      the image cannot be read.%%    o image_info: Specifies a pointer to a ImageInfo structure.%%    o exception: return any errors or warnings in this structure.%%*/static Image *ReadARTImage(const ImageInfo *image_info,ExceptionInfo *exception){  Image *image;  int i;  unsigned width,height,dummy;  long ldblk;  unsigned char *BImgBuff=NULL;  unsigned char Padding;  unsigned int status;  const PixelPacket *q;  /*    Open image file.  */  assert(image_info != (const ImageInfo *) NULL);  assert(image_info->signature == MagickSignature);  assert(exception != (ExceptionInfo *) NULL);  assert(exception->signature == MagickSignature);  image=AllocateImage(image_info);  status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception);  if (status == False)    ThrowReaderException(FileOpenError,UnableToOpenFile,image);  /*    Read ART image.  */  dummy=ReadBlobLSBShort(image);  width=ReadBlobLSBShort(image);  dummy=ReadBlobLSBShort(image);  height=ReadBlobLSBShort(image);  ldblk=(long) ((width+7) / 8);  Padding=(unsigned char) ((-ldblk) & 0x01);  if(GetBlobSize(image)!=(8+((long)ldblk+Padding)*height))    ThrowReaderException(CorruptImageError,ImproperImageHeader,image);  image->columns=width;  image->rows=height;  image->depth=1;  image->colors=1l << image->depth;   /* printf("ART header checked OK %d,%d/n",image->colors,image->depth); */  if (!AllocateImageColormap(image,image->colors)) goto NoMemory;  /* If ping is true, then only set image size and colors without reading any image data. */  if (image_info->ping) goto DONE_READING;  /* ----- Load RLE compressed raster ----- */  BImgBuff=MagickAllocateMemory(unsigned char *,((size_t) ldblk));  /*Ldblk was set in the check phase*/  if(BImgBuff==NULL)    NoMemory:  ThrowReaderException(ResourceLimitError,MemoryAllocationFailed,image);  for(i=0; i<(int)height; i++)    {      (void) ReadBlob(image,(size_t)ldblk,(char *)BImgBuff);      (void) ReadBlob(image,Padding,(char *)&dummy);            q=SetImagePixels(image,0,i,image->columns,1);      if (q == (PixelPacket *)NULL) break;      (void)ImportImagePixelArea(image,GrayQuantum,1,BImgBuff,NULL,0);      if (!SyncImagePixels(image)) break;    }  if(BImgBuff!=NULL)    MagickFreeMemory(BImgBuff);  if (EOFBlob(image))    ThrowException(exception,CorruptImageError,UnexpectedEndOfFile,                   image->filename);//.........这里部分代码省略.........
开发者ID:acobus,项目名称:PDF2TeX,代码行数:101,


示例12: ReadTXTImage

//.........这里部分代码省略.........                {                case GRAYColorspace:                {                    if (image->alpha_trait != UndefinedPixelTrait)                    {                        count=(ssize_t) sscanf(text,"%ld,%ld: (%lf%*[%,]%lf%*[%,]",                                               &x_offset,&y_offset,&red,&alpha);                        green=red;                        blue=red;                        break;                    }                    count=(ssize_t) sscanf(text,"%ld,%ld: (%lf%*[%,]",&x_offset,                                           &y_offset,&red);                    green=red;                    blue=red;                    break;                }                case CMYKColorspace:                {                    if (image->alpha_trait != UndefinedPixelTrait)                    {                        count=(ssize_t) sscanf(text,                                               "%ld,%ld: (%lf%*[%,]%lf%*[%,]%lf%*[%,]%lf%*[%,]%lf%*[%,]",                                               &x_offset,&y_offset,&red,&green,&blue,&black,&alpha);                        break;                    }                    count=(ssize_t) sscanf(text,                                           "%ld,%ld: (%lf%*[%,]%lf%*[%,]%lf%*[%,]%lf%*[%,]",&x_offset,                                           &y_offset,&red,&green,&blue,&black);                    break;                }                default:                {                    if (image->alpha_trait != UndefinedPixelTrait)                    {                        count=(ssize_t) sscanf(text,                                               "%ld,%ld: (%lf%*[%,]%lf%*[%,]%lf%*[%,]%lf%*[%,]",                                               &x_offset,&y_offset,&red,&green,&blue,&alpha);                        break;                    }                    count=(ssize_t) sscanf(text,                                           "%ld,%ld: (%lf%*[%,]%lf%*[%,]%lf%*[%,]",&x_offset,                                           &y_offset,&red,&green,&blue);                    break;                }                }                if (strchr(text,'%') != (char *) NULL)                {                    red*=0.01*range;                    green*=0.01*range;                    blue*=0.01*range;                    black*=0.01*range;                    alpha*=0.01*range;                }                if (image->colorspace == LabColorspace)                {                    green+=(range+1)/2.0;                    blue+=(range+1)/2.0;                }                pixel.red=(MagickRealType) ScaleAnyToQuantum((QuantumAny) (red+0.5),                          range);                pixel.green=(MagickRealType) ScaleAnyToQuantum((QuantumAny) (green+0.5),                            range);                pixel.blue=(MagickRealType) ScaleAnyToQuantum((QuantumAny) (blue+0.5),                           range);                pixel.black=(MagickRealType) ScaleAnyToQuantum((QuantumAny) (black+0.5),                            range);                pixel.alpha=(MagickRealType) ScaleAnyToQuantum((QuantumAny) (alpha+0.5),                            range);                q=GetAuthenticPixels(image,(ssize_t) x_offset,(ssize_t) y_offset,1,1,                                     exception);                if (q == (Quantum *) NULL)                    continue;                SetPixelViaPixelInfo(image,&pixel,q);                if (SyncAuthenticPixels(image,exception) == MagickFalse)                    break;            }        }        (void) ReadBlobString(image,text);        if (LocaleNCompare((char *) text,MagickID,strlen(MagickID)) == 0)        {            /*              Allocate next image structure.            */            AcquireNextImage(image_info,image,exception);            if (GetNextImageInList(image) == (Image *) NULL)            {                image=DestroyImageList(image);                return((Image *) NULL);            }            image=SyncNextImageInList(image);            status=SetImageProgress(image,LoadImagesTag,TellBlob(image),                                    GetBlobSize(image));            if (status == MagickFalse)                break;        }    } while (LocaleNCompare((char *) text,MagickID,strlen(MagickID)) == 0);    (void) CloseBlob(image);    return(GetFirstImageInList(image));}
开发者ID:remicollet,项目名称:ImageMagick,代码行数:101,


示例13: assert

static Image *ReadSFWImage(const ImageInfo *image_info,ExceptionInfo *exception){  static unsigned char    HuffmanTable[] =    {      0xFF, 0xC4, 0x01, 0xA2, 0x00, 0x00, 0x01, 0x05, 0x01, 0x01, 0x01,      0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,      0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B,      0x01, 0x00, 0x03, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,      0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04,      0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x10, 0x00, 0x02, 0x01,      0x03, 0x03, 0x02, 0x04, 0x03, 0x05, 0x05, 0x04, 0x04, 0x00, 0x00,      0x01, 0x7D, 0x01, 0x02, 0x03, 0x00, 0x04, 0x11, 0x05, 0x12, 0x21,      0x31, 0x41, 0x06, 0x13, 0x51, 0x61, 0x07, 0x22, 0x71, 0x14, 0x32,      0x81, 0x91, 0xA1, 0x08, 0x23, 0x42, 0xB1, 0xC1, 0x15, 0x52, 0xD1,      0xF0, 0x24, 0x33, 0x62, 0x72, 0x82, 0x09, 0x0A, 0x16, 0x17, 0x18,      0x19, 0x1A, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x34, 0x35, 0x36,      0x37, 0x38, 0x39, 0x3A, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49,      0x4A, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x63, 0x64,      0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x73, 0x74, 0x75, 0x76, 0x77,      0x78, 0x79, 0x7A, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A,      0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0xA2, 0xA3,      0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xB2, 0xB3, 0xB4, 0xB5,      0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7,      0xC8, 0xC9, 0xCA, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9,      0xDA, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA,      0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0x11,      0x00, 0x02, 0x01, 0x02, 0x04, 0x04, 0x03, 0x04, 0x07, 0x05, 0x04,      0x04, 0x00, 0x01, 0x02, 0x77, 0x00, 0x01, 0x02, 0x03, 0x11, 0x04,      0x05, 0x21, 0x31, 0x06, 0x12, 0x41, 0x51, 0x07, 0x61, 0x71, 0x13,      0x22, 0x32, 0x81, 0x08, 0x14, 0x42, 0x91, 0xA1, 0xB1, 0xC1, 0x09,      0x23, 0x33, 0x52, 0xF0, 0x15, 0x62, 0x72, 0xD1, 0x0A, 0x16, 0x24,      0x34, 0xE1, 0x25, 0xF1, 0x17, 0x18, 0x19, 0x1A, 0x26, 0x27, 0x28,      0x29, 0x2A, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x43, 0x44, 0x45,      0x46, 0x47, 0x48, 0x49, 0x4A, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58,      0x59, 0x5A, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x73,      0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0x82, 0x83, 0x84, 0x85,      0x86, 0x87, 0x88, 0x89, 0x8A, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,      0x98, 0x99, 0x9A, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9,      0xAA, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xC2,      0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xD2, 0xD3, 0xD4,      0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6,      0xE7, 0xE8, 0xE9, 0xEA, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8,      0xF9, 0xFA    };  FILE    *file;  Image    *flipped_image,    *image;  ImageInfo    *read_info;  int    unique_file;  MagickBooleanType    status;  register unsigned char    *header,    *data;  size_t    extent;  ssize_t    count;  unsigned char    *buffer,    *offset;  /*    Open image file.  */  assert(image_info != (const ImageInfo *) NULL);  assert(image_info->signature == MagickSignature);  if (image_info->debug != MagickFalse)    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",      image_info->filename);  assert(exception != (ExceptionInfo *) NULL);  assert(exception->signature == MagickSignature);  image=AcquireImage(image_info);  status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception);  if (status == MagickFalse)    {      image=DestroyImageList(image);      return((Image *) NULL);    }  /*    Read image into a buffer.  */  buffer=(unsigned char *) AcquireQuantumMemory((size_t) GetBlobSize(image),    sizeof(*buffer));  if (buffer == (unsigned char *) NULL)    ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");//.........这里部分代码省略.........
开发者ID:0xPr0xy,项目名称:ImageMagick,代码行数:101,


示例14: ReadYUVImage

//.........这里部分代码省略.........          AppendImageFormat("V",image->filename);          status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception);          if (status == MagickFalse)            {              image=DestroyImageList(image);              return((Image *) NULL);            }        }      for (y=0; y < (ssize_t) chroma_image->rows; y++)      {        (void) ReadBlob(image,(size_t) quantum*chroma_image->columns,scanline);        p=scanline;        q=GetAuthenticPixels(chroma_image,0,y,chroma_image->columns,1,          exception);        if (q == (PixelPacket *) NULL)          break;        for (x=0; x < (ssize_t) chroma_image->columns; x++)        {          if (quantum == 1)            SetPixelBlue(q,ScaleCharToQuantum(*p++));          else            {              SetPixelBlue(q,ScaleShortToQuantum(((*p) << 8) | *(p+1)));              p+=2;            }          q++;        }        if (SyncAuthenticPixels(chroma_image,exception) == MagickFalse)          break;      }    }    /*      Scale image.    */    resize_image=ResizeImage(chroma_image,image->columns,image->rows,      TriangleFilter,1.0,exception);    chroma_image=DestroyImage(chroma_image);    if (resize_image == (Image *) NULL)      ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");    for (y=0; y < (ssize_t) image->rows; y++)    {      q=GetAuthenticPixels(image,0,y,image->columns,1,exception);      chroma_pixels=GetVirtualPixels(resize_image,0,y,resize_image->columns,1,        &resize_image->exception);      if ((q == (PixelPacket *) NULL) ||          (chroma_pixels == (const PixelPacket *) NULL))        break;      for (x=0; x < (ssize_t) image->columns; x++)      {        SetPixelGreen(q,GetPixelGreen(chroma_pixels));        SetPixelBlue(q,GetPixelBlue(chroma_pixels));        chroma_pixels++;        q++;      }      if (SyncAuthenticPixels(image,exception) == MagickFalse)        break;    }    resize_image=DestroyImage(resize_image);    SetImageColorspace(image,YCbCrColorspace);    if (interlace == PartitionInterlace)      (void) CopyMagickString(image->filename,image_info->filename,        MaxTextExtent);    if (EOFBlob(image) != MagickFalse)      {        ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile",          image->filename);        break;      }    /*      Proceed to next image.    */    if (image_info->number_scenes != 0)      if (image->scene >= (image_info->scene+image_info->number_scenes-1))        break;    if (interlace == NoInterlace)      count=ReadBlob(image,(size_t) (2*quantum*image->columns),scanline);    else      count=ReadBlob(image,(size_t) quantum*image->columns,scanline);    if (count != 0)      {        /*          Allocate next image structure.        */        AcquireNextImage(image_info,image);        if (GetNextImageInList(image) == (Image *) NULL)          {            image=DestroyImageList(image);            return((Image *) NULL);          }        image=SyncNextImageInList(image);        status=SetImageProgress(image,LoadImagesTag,TellBlob(image),          GetBlobSize(image));        if (status == MagickFalse)          break;      }  } while (count != 0);  scanline=(unsigned char *) RelinquishMagickMemory(scanline);  (void) CloseBlob(image);  return(GetFirstImageInList(image));}
开发者ID:JohnHeywardOBrien,项目名称:photogram,代码行数:101,


示例15: IdentifyImage

//.........这里部分代码省略.........            image->magick_columns,(double) image->magick_rows);      (void) FormatLocaleFile(file,"%.20gx%.20g ",(double) image->columns,        (double) image->rows);      if ((image->page.width != 0) || (image->page.height != 0) ||          (image->page.x != 0) || (image->page.y != 0))        (void) FormatLocaleFile(file,"%.20gx%.20g%+.20g%+.20g ",(double)          image->page.width,(double) image->page.height,(double) image->page.x,          (double) image->page.y);      (void) FormatLocaleFile(file,"%.20g-bit ",(double) image->depth);      if (image->type != UndefinedType)        (void) FormatLocaleFile(file,"%s ",CommandOptionToMnemonic(          MagickTypeOptions,(ssize_t) image->type));      if (image->storage_class == DirectClass)        {          (void) FormatLocaleFile(file,"DirectClass ");          if (image->total_colors != 0)            {              (void) FormatMagickSize(image->total_colors,MagickFalse,format);              (void) FormatLocaleFile(file,"%s ",format);            }        }      else        if (image->total_colors <= image->colors)          (void) FormatLocaleFile(file,"PseudoClass %.20gc ",(double)            image->colors);        else          (void) FormatLocaleFile(file,"PseudoClass %.20g=>%.20gc ",(double)            image->total_colors,(double) image->colors);      if (image->error.mean_error_per_pixel != 0.0)        (void) FormatLocaleFile(file,"%.20g/%f/%fdb ",(double)          (image->error.mean_error_per_pixel+0.5),          image->error.normalized_mean_error,          image->error.normalized_maximum_error);      if (GetBlobSize(image) != 0)        {          (void) FormatMagickSize(GetBlobSize(image),MagickFalse,format);          (void) FormatLocaleFile(file,"%s ",format);        }      (void) FormatLocaleFile(file,"%0.3fu %lu:%02lu.%03lu",user_time,        (unsigned long) (elapsed_time/60.0),(unsigned long) floor(fmod(        elapsed_time,60.0)),(unsigned long) (1000.0*(elapsed_time-        floor(elapsed_time))));      (void) FormatLocaleFile(file,"/n");      (void) fflush(file);      return(ferror(file) != 0 ? MagickFalse : MagickTrue);    }  /*    Display verbose info about the image.  */  p=GetVirtualPixels(image,0,0,1,1,exception);  ping=p == (const Quantum *) NULL ? MagickTrue : MagickFalse;  type=GetImageType(image,exception);  (void) SignatureImage(image,exception);  (void) FormatLocaleFile(file,"Image: %s/n",image->filename);  if (*image->magick_filename != '/0')    if (LocaleCompare(image->magick_filename,image->filename) != 0)      {        char          filename[MaxTextExtent];        GetPathComponent(image->magick_filename,TailPath,filename);        (void) FormatLocaleFile(file,"  Base filename: %s/n",filename);      }  magick_info=GetMagickInfo(image->magick,exception);  if ((magick_info == (const MagickInfo *) NULL) ||      (*GetMagickDescription(magick_info) == '/0'))
开发者ID:Ladeira,项目名称:ImageMagick,代码行数:67,


示例16: ReadPIXImage

//.........这里部分代码省略.........  {    /*      Initialize image structure.    */    image->columns=width;    image->rows=height;    if (bits_per_pixel == 8)      if (AcquireImageColormap(image,256) == MagickFalse)        ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");    if ((image_info->ping != MagickFalse) && (image_info->number_scenes != 0))      if (image->scene >= (image_info->scene+image_info->number_scenes-1))        break;    /*      Convert PIX raster image to pixel packets.    */    red=(Quantum) 0;    green=(Quantum) 0;    blue=(Quantum) 0;    index=(IndexPacket) 0;    length=0;    for (y=0; y < (ssize_t) image->rows; y++)    {      q=QueueAuthenticPixels(image,0,y,image->columns,1,exception);      if (q == (PixelPacket *) NULL)        break;      indexes=GetAuthenticIndexQueue(image);      for (x=0; x < (ssize_t) image->columns; x++)      {        if (length == 0)          {            length=(size_t) ReadBlobByte(image);            if (bits_per_pixel == 8)              index=ScaleCharToQuantum((unsigned char) ReadBlobByte(image));            else              {                blue=ScaleCharToQuantum((unsigned char) ReadBlobByte(image));                green=ScaleCharToQuantum((unsigned char) ReadBlobByte(image));                red=ScaleCharToQuantum((unsigned char) ReadBlobByte(image));              }          }        if (image->storage_class == PseudoClass)          SetPixelIndex(indexes+x,index);        SetPixelBlue(q,blue);        SetPixelGreen(q,green);        SetPixelRed(q,red);        length--;        q++;      }      if (SyncAuthenticPixels(image,exception) == MagickFalse)        break;      if (image->previous == (Image *) NULL)        {          status=SetImageProgress(image,LoadImageTag,(MagickOffsetType) y,            image->rows);          if (status == MagickFalse)            break;        }    }    if (image->storage_class == PseudoClass)      (void) SyncImage(image);    if (EOFBlob(image) != MagickFalse)      {        ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile",          image->filename);        break;      }    /*      Proceed to next image.    */    if (image_info->number_scenes != 0)      if (image->scene >= (image_info->scene+image_info->number_scenes-1))        break;    width=ReadBlobMSBLong(image);    height=ReadBlobMSBLong(image);    (void) ReadBlobMSBShort(image);    (void) ReadBlobMSBShort(image);    bits_per_pixel=ReadBlobMSBShort(image);    status=(width != 0UL) && (height == 0UL) && ((bits_per_pixel == 8) ||      (bits_per_pixel == 24)) ? MagickTrue : MagickFalse;    if (status == MagickTrue)      {        /*          Allocate next image structure.        */        AcquireNextImage(image_info,image);        if (GetNextImageInList(image) == (Image *) NULL)          {            image=DestroyImageList(image);            return((Image *) NULL);          }        image=SyncNextImageInList(image);        status=SetImageProgress(image,LoadImagesTag,TellBlob(image),          GetBlobSize(image));        if (status == MagickFalse)          break;      }  } while (status == MagickTrue);  (void) CloseBlob(image);  return(GetFirstImageInList(image));}
开发者ID:271845221,项目名称:Android-ImageMagick,代码行数:101,


示例17: ReadVIFFImage

//.........这里部分代码省略.........                        break;                }            }        }        else if (image->storage_class == PseudoClass)            for (y=0; y < (ssize_t) image->rows; y++)            {                q=QueueAuthenticPixels(image,0,y,image->columns,1,exception);                if (q == (Quantum *) NULL)                    break;                for (x=0; x < (ssize_t) image->columns; x++)                {                    SetPixelIndex(image,*p++,q);                    q+=GetPixelChannels(image);                }                if (SyncAuthenticPixels(image,exception) == MagickFalse)                    break;                if (image->previous == (Image *) NULL)                {                    status=SetImageProgress(image,LoadImageTag,(MagickOffsetType) y,                                            image->rows);                    if (status == MagickFalse)                        break;                }            }        else        {            /*              Convert DirectColor scanline.            */            number_pixels=(MagickSizeType) image->columns*image->rows;            for (y=0; y < (ssize_t) image->rows; y++)            {                q=QueueAuthenticPixels(image,0,y,image->columns,1,exception);                if (q == (Quantum *) NULL)                    break;                for (x=0; x < (ssize_t) image->columns; x++)                {                    SetPixelRed(image,ScaleCharToQuantum(*p),q);                    SetPixelGreen(image,ScaleCharToQuantum(*(p+number_pixels)),q);                    SetPixelBlue(image,ScaleCharToQuantum(*(p+2*number_pixels)),q);                    if (image->colors != 0)                    {                        SetPixelRed(image,image->colormap[(ssize_t)                                                          GetPixelRed(image,q)].red,q);                        SetPixelGreen(image,image->colormap[(ssize_t)                                                            GetPixelGreen(image,q)].green,q);                        SetPixelBlue(image,image->colormap[(ssize_t)                                                           GetPixelBlue(image,q)].blue,q);                    }                    SetPixelAlpha(image,image->alpha_trait == BlendPixelTrait ?                                  ScaleCharToQuantum(*(p+number_pixels*3)) : OpaqueAlpha,q);                    p++;                    q+=GetPixelChannels(image);                }                if (SyncAuthenticPixels(image,exception) == MagickFalse)                    break;                if (image->previous == (Image *) NULL)                {                    status=SetImageProgress(image,LoadImageTag,(MagickOffsetType) y,                                            image->rows);                    if (status == MagickFalse)                        break;                }            }        }        viff_pixels=(unsigned char *) RelinquishMagickMemory(viff_pixels);        if (image->storage_class == PseudoClass)            (void) SyncImage(image,exception);        if (EOFBlob(image) != MagickFalse)        {            ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile",                               image->filename);            break;        }        /*          Proceed to next image.        */        if (image_info->number_scenes != 0)            if (image->scene >= (image_info->scene+image_info->number_scenes-1))                break;        count=ReadBlob(image,1,&viff_info.identifier);        if ((count != 0) && (viff_info.identifier == 0xab))        {            /*              Allocate next image structure.            */            AcquireNextImage(image_info,image,exception);            if (GetNextImageInList(image) == (Image *) NULL)            {                image=DestroyImageList(image);                return((Image *) NULL);            }            image=SyncNextImageInList(image);            status=SetImageProgress(image,LoadImagesTag,TellBlob(image),                                    GetBlobSize(image));            if (status == MagickFalse)                break;        }    } while ((count != 0) && (viff_info.identifier == 0xab));
开发者ID:verma-manish58,项目名称:ImageMagick,代码行数:101,


示例18: ReadWEBPImage

/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%                                                                             %%                                                                             %%                                                                             %%   R e a d W E B P I m a g e                                                 %%                                                                             %%                                                                             %%                                                                             %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  ReadWEBPImage() reads an image in the WebP image format.%%  The format of the ReadWEBPImage method is:%%      Image *ReadWEBPImage(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 *ReadWEBPImage(const ImageInfo *image_info,                            ExceptionInfo *exception){    int    height,    width;    Image    *image;    MagickBooleanType    status;    register PixelPacket    *q;    register ssize_t    x;    register unsigned char    *p;    size_t    length;    ssize_t    count,    y;    unsigned char    *stream,    *pixels;    /*      Open image file.    */    assert(image_info != (const ImageInfo *) NULL);    assert(image_info->signature == MagickSignature);    if (image_info->debug != MagickFalse)        (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",                              image_info->filename);    assert(exception != (ExceptionInfo *) NULL);    assert(exception->signature == MagickSignature);    image=AcquireImage(image_info);    status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception);    if (status == MagickFalse)    {        image=DestroyImageList(image);        return((Image *) NULL);    }    length=(size_t) GetBlobSize(image);    stream=(unsigned char *) AcquireQuantumMemory(length,sizeof(*stream));    if (stream == (unsigned char *) NULL)        ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");    count=ReadBlob(image,length,stream);    if (count != (ssize_t) length)        ThrowReaderException(CorruptImageError,"InsufficientImageDataInFile");    pixels=(unsigned char *) WebPDecodeRGBA(stream,length,&width,&height);    if (pixels == (unsigned char *) NULL)        ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");    image->columns=(size_t) width;    image->rows=(size_t) height;    p=pixels;    for (y=0; y < (ssize_t) image->rows; y++)    {        q=QueueAuthenticPixels(image,0,y,image->columns,1,exception);        if (q == (PixelPacket *) NULL)            break;        for (x=0; x < (ssize_t) image->columns; x++)        {            SetRedPixelComponent(q,ScaleCharToQuantum(*p++));            SetGreenPixelComponent(q,ScaleCharToQuantum(*p++));            SetBluePixelComponent(q,ScaleCharToQuantum(*p++));            SetOpacityPixelComponent(q,(QuantumRange-ScaleCharToQuantum(*p++)));            if (q->opacity != OpaqueOpacity)//.........这里部分代码省略.........
开发者ID:jlubea,项目名称:propelize,代码行数:101,


示例19: ReadGRAYImage

//.........这里部分代码省略.........        Skip to next image.      */      image->scene++;      for (y=0; y < (long) image->rows; y++)      {        count=ReadBlob(image,packet_size*image->extract_info.width,pixels);        if (count != (ssize_t) (packet_size*image->extract_info.width))          break;      }    }  offset=(MagickOffsetType) (packet_size*image->extract_info.x);  do  {    /*      Convert raster image to pixel packets.    */    GetQuantumInfo(image_info,&quantum_info);    if ((image_info->ping != MagickFalse) && (image_info->number_scenes != 0))      if (image->scene >= (image_info->scene+image_info->number_scenes-1))        break;    if (SetImageExtent(image,0,0) == MagickFalse)      {        InheritException(exception,&image->exception);        return(DestroyImageList(image));      }    for (y=0; y < image->extract_info.y; y++)    {      count=ReadBlob(image,packet_size*image->extract_info.width,pixels);      if (count != (ssize_t) (packet_size*image->extract_info.width))        break;    }    for (y=0; y < (long) image->rows; y++)    {      if ((y > 0) || (GetPreviousImageInList(image) == (Image *) NULL))        {          count=ReadBlob(image,packet_size*image->extract_info.width,pixels);          if (count != (ssize_t) (packet_size*image->extract_info.width))            break;        }      q=SetImagePixels(image,0,y,image->columns,1);      if (q == (PixelPacket *) NULL)        break;      (void) ExportQuantumPixels(image,&quantum_info,GrayQuantum,pixels+offset);      if (SyncImagePixels(image) == MagickFalse)        break;      if (image->previous == (Image *) NULL)        if ((image->progress_monitor != (MagickProgressMonitor) NULL) &&            (QuantumTick(y,image->rows) != MagickFalse))          {            status=image->progress_monitor(LoadImageTag,y,image->rows,              image->client_data);            if (status == MagickFalse)              break;          }    }    width=image->extract_info.height-image->rows-image->extract_info.y;    for (j=0; j < (long) width; j++)    {      count=ReadBlob(image,packet_size*image->extract_info.width,pixels);      if (count != (ssize_t) (packet_size*image->extract_info.width))        break;    }    if (y < (long) image->rows)      {        ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile",          image->filename);        break;      }    /*      Proceed to next image.    */    if (image_info->number_scenes != 0)      if (image->scene >= (image_info->scene+image_info->number_scenes-1))        break;    count=ReadBlob(image,packet_size*image->extract_info.width,pixels);    if (count == (ssize_t) (packet_size*image->extract_info.width))      {        /*          Allocate next image structure.        */        AllocateNextImage(image_info,image);        if (GetNextImageInList(image) == (Image *) NULL)          {            image=DestroyImageList(image);            return((Image *) NULL);          }        image=SyncNextImageInList(image);        if (image->progress_monitor != (MagickProgressMonitor) NULL)          {            status=image->progress_monitor(LoadImagesTag,TellBlob(image),              GetBlobSize(image),image->client_data);            if (status == MagickFalse)              break;          }      }  } while (count == (ssize_t) (packet_size*image->extract_info.width));  pixels=(unsigned char *) RelinquishMagickMemory(pixels);  CloseBlob(image);  return(GetFirstImageInList(image));}
开发者ID:vazexqi,项目名称:ParsecPipelineParallelism,代码行数:101,


示例20: assert

static Image *ReadJP2Image(const ImageInfo *image_info,ExceptionInfo *exception){  const char    *option;  Image    *image;  int    jp2_status;  MagickBooleanType    status;  opj_codec_t    *jp2_codec;  opj_codestream_index_t    *codestream_index = (opj_codestream_index_t *) NULL;  opj_dparameters_t    parameters;  opj_image_t    *jp2_image;  opj_stream_t    *jp2_stream;  register ssize_t    i;  ssize_t    y;  unsigned char    sans[4];  /*    Open image file.  */  assert(image_info != (const ImageInfo *) NULL);  assert(image_info->signature == MagickCoreSignature);  if (image_info->debug != MagickFalse)    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",      image_info->filename);  assert(exception != (ExceptionInfo *) NULL);  assert(exception->signature == MagickCoreSignature);  image=AcquireImage(image_info,exception);  status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception);  if (status == MagickFalse)    {      image=DestroyImageList(image);      return((Image *) NULL);    }  /*    Initialize JP2 codec.  */  if (ReadBlob(image,4,sans) != 4)    {      image=DestroyImageList(image);      return((Image *) NULL);    }  (void) SeekBlob(image,SEEK_SET,0);  if (LocaleCompare(image_info->magick,"JPT") == 0)    jp2_codec=opj_create_decompress(OPJ_CODEC_JPT);  else    if (IsJ2K(sans,4) != MagickFalse)      jp2_codec=opj_create_decompress(OPJ_CODEC_J2K);    else      jp2_codec=opj_create_decompress(OPJ_CODEC_JP2);  opj_set_warning_handler(jp2_codec,JP2WarningHandler,exception);  opj_set_error_handler(jp2_codec,JP2ErrorHandler,exception);  opj_set_default_decoder_parameters(&parameters);  option=GetImageOption(image_info,"jp2:reduce-factor");  if (option != (const char *) NULL)    parameters.cp_reduce=StringToInteger(option);  option=GetImageOption(image_info,"jp2:quality-layers");  if (option != (const char *) NULL)    parameters.cp_layer=StringToInteger(option);  if (opj_setup_decoder(jp2_codec,&parameters) == 0)    {      opj_destroy_codec(jp2_codec);      ThrowReaderException(DelegateError,"UnableToManageJP2Stream");    }  jp2_stream=opj_stream_create(OPJ_J2K_STREAM_CHUNK_SIZE,1);  opj_stream_set_read_function(jp2_stream,JP2ReadHandler);  opj_stream_set_write_function(jp2_stream,JP2WriteHandler);  opj_stream_set_seek_function(jp2_stream,JP2SeekHandler);  opj_stream_set_skip_function(jp2_stream,JP2SkipHandler);  opj_stream_set_user_data(jp2_stream,image,NULL);  opj_stream_set_user_data_length(jp2_stream,GetBlobSize(image));  if (opj_read_header(jp2_stream,jp2_codec,&jp2_image) == 0)    {      opj_stream_destroy(jp2_stream);      opj_destroy_codec(jp2_codec);      ThrowReaderException(DelegateError,"UnableToDecodeImageFile");    }  jp2_status=1;  if ((image->columns != 0) && (image->rows != 0))//.........这里部分代码省略.........
开发者ID:WilfR,项目名称:ImageMagick,代码行数:101,


示例21: assert

static Image *ReadINLINEImage(const ImageInfo *image_info,  ExceptionInfo *exception){  Image    *image;  MagickBooleanType    status;  register size_t    i;  ssize_t    count;  size_t    quantum;  unsigned char    *inline_image;  /*    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);  if (LocaleNCompare(image_info->filename,"data:",5) == 0)    return(ReadInlineImage(image_info,image_info->filename,exception));  image=AcquireImage(image_info);  status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception);  if (status == MagickFalse)    {      image=DestroyImageList(image);      return((Image *) NULL);    }  quantum=MagickMin((size_t) GetBlobSize(image),MagickMaxBufferExtent);  inline_image=(unsigned char *) AcquireQuantumMemory(quantum,    sizeof(*inline_image));  for (i=0; inline_image != (unsigned char *) NULL; i+=count)  {    count=(ssize_t) ReadBlob(image,quantum,inline_image+i);    if (count <= 0)      {        count=0;        if (errno != EINTR)          break;      }    if (~(1UL*i) < (quantum+1))      {        inline_image=(unsigned char *) RelinquishMagickMemory(inline_image);        break;      }    inline_image=(unsigned char *) ResizeQuantumMemory(inline_image,i+quantum+1,      sizeof(*inline_image));  }  if (inline_image == (unsigned char *) NULL)    {      (void) ThrowMagickException(exception,GetMagickModule(),        ResourceLimitError,"MemoryAllocationFailed","`%s'",image->filename);      return((Image *) NULL);    }  inline_image[i+count]='/0';  image=DestroyImageList(image);  image=ReadInlineImage(image_info,(char *) inline_image,exception);  inline_image=(unsigned char *) RelinquishMagickMemory(inline_image);  return(image);}
开发者ID:JasonGross,项目名称:characters,代码行数:72,


示例22: ReadRGBImage

//.........这里部分代码省略.........              {                CloseBlob(image);                AppendImageFormat("A",image->filename);                status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception);                if (status == MagickFalse)                  {                    image=DestroyImageList(image);                    return((Image *) NULL);                  }              }            for (y=0; y < image->extract_info.y; y++)            {              count=ReadBlob(image,packet_size*image->extract_info.width,                pixels);              if (count != (ssize_t) (packet_size*image->extract_info.width))                break;            }            for (y=0; y < (long) image->rows; y++)            {              count=ReadBlob(image,packet_size*image->extract_info.width,                pixels);              if (count != (ssize_t) (packet_size*image->extract_info.width))                break;              q=GetImagePixels(image,0,y,image->columns,1);              if (q == (PixelPacket *) NULL)                break;              if (LocaleCompare(image_info->magick,"RGBA") == 0)                (void) ExportQuantumPixels(image,&quantum_info,AlphaQuantum,                  pixels+offset);              else                (void) ExportQuantumPixels(image,&quantum_info,OpacityQuantum,                  pixels+offset);              if (SyncImagePixels(image) == MagickFalse)                break;              if (image->previous == (Image *) NULL)                if ((image->progress_monitor != (MagickProgressMonitor) NULL) &&                    (QuantumTick(i,span) != MagickFalse))                  {                    status=image->progress_monitor(LoadImageTag,i,span,                      image->client_data);                    if (status == MagickFalse)                      break;                  }              i++;            }            width=image->extract_info.height-image->rows-image->extract_info.y;            for (i=0; i < (long) width; i++)            {              count=ReadBlob(image,packet_size*image->extract_info.width,                pixels);              if (count != (ssize_t) (packet_size*image->extract_info.width))                break;            }          }        if (image_info->interlace == PartitionInterlace)          (void) CopyMagickString(image->filename,image_info->filename,            MaxTextExtent);        break;      }    }    if (y < (long) image->rows)      {        ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile",          image->filename);        break;      }    /*      Proceed to next image.    */    if (image_info->number_scenes != 0)      if (image->scene >= (image_info->scene+image_info->number_scenes-1))        break;    if (image_info->interlace == PartitionInterlace)      break;    count=ReadBlob(image,packet_size*image->extract_info.width,pixels);    if (count == (ssize_t) (packet_size*image->extract_info.width))      {        /*          Allocate next image structure.        */        AllocateNextImage(image_info,image);        if (GetNextImageInList(image) == (Image *) NULL)          {            image=DestroyImageList(image);            return((Image *) NULL);          }        image=SyncNextImageInList(image);        if (image->progress_monitor != (MagickProgressMonitor) NULL)          {            status=image->progress_monitor(LoadImagesTag,TellBlob(image),              GetBlobSize(image),image->client_data);            if (status == MagickFalse)              break;          }      }  } while ((size_t) count == (packet_size*image->extract_info.width));  pixels=(unsigned char *) RelinquishMagickMemory(pixels);  CloseBlob(image);  return(GetFirstImageInList(image));}
开发者ID:scuddalo,项目名称:cq,代码行数:101,


示例23: ReadRGBImage

//.........这里部分代码省略.........            register long              x;            register PixelPacket              *__restrict q;            if (count != (ssize_t) length)              {                ThrowFileException(exception,CorruptImageError,                  "UnexpectedEndOfFile",image->filename);                break;              }            q=GetAuthenticPixels(canvas_image,0,0,canvas_image->columns,1,              exception);            if (q == (PixelPacket *) NULL)              break;            length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,              quantum_info,quantum_types[i],pixels,exception);            if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)              break;            if (((y-image->extract_info.y) >= 0) &&                ((y-image->extract_info.y) < (long) image->rows))              {                p=GetVirtualPixels(canvas_image,canvas_image->extract_info.x,0,                  canvas_image->columns,1,exception);                q=GetAuthenticPixels(image,0,y-image->extract_info.y,                  image->columns,1,exception);                if ((p == (const PixelPacket *) NULL) ||                    (q == (PixelPacket *) NULL))                  break;                for (x=0; x < (long) image->columns; x++)                {                  switch(quantum_types[i])                  {                    case RedQuantum:    q->red=p->red;         break;                    case GreenQuantum:  q->green=p->green;     break;                    case BlueQuantum:   q->blue=p->blue;       break;                    case OpacityQuantum:                    case AlphaQuantum:  q->opacity=p->opacity; break;                    default:                                   break;                  }                  p++;                  q++;                }                if (SyncAuthenticPixels(image,exception) == MagickFalse)                  break;              }            count=ReadBlob(image,length,pixels);          }          if (image->previous == (Image *) NULL)            {              status=SetImageProgress(image,LoadImageTag,(i+1),5);              if (status == MagickFalse)                break;            }          if (i != (channels-1))            (void) CloseBlob(image);        }        if (image->previous == (Image *) NULL)          {            status=SetImageProgress(image,LoadImageTag,5,5);            if (status == MagickFalse)              break;          }        break;      }    }    SetQuantumImageType(image,quantum_type);    /*      Proceed to next image.    */    if (image_info->number_scenes != 0)      if (image->scene >= (image_info->scene+image_info->number_scenes-1))        break;    if (count == (ssize_t) length)      {        /*          Allocate next image structure.        */        AcquireNextImage(image_info,image);        if (GetNextImageInList(image) == (Image *) NULL)          {            image=DestroyImageList(image);            return((Image *) NULL);          }        image=SyncNextImageInList(image);        status=SetImageProgress(image,LoadImagesTag,TellBlob(image),          GetBlobSize(image));        if (status == MagickFalse)          break;      }    scene++;  } while (count == (ssize_t) length);  quantum_info=DestroyQuantumInfo(quantum_info);  InheritException(&image->exception,&canvas_image->exception);  canvas_image=DestroyImage(canvas_image);  (void) CloseBlob(image);  return(GetFirstImageInList(image));}
开发者ID:0xPr0xy,项目名称:ImageMagick,代码行数:101,


示例24: ReadPWPImage

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


示例25: ReadTXTImage

//.........这里部分代码省略.........            if (image->matte != MagickFalse)              {                count=(ssize_t) sscanf(text,"%ld,%ld: (%lf%*[%,]%lf%*[%,]",                  &x_offset,&y_offset,&red,&opacity);                green=red;                blue=red;                break;              }            count=(ssize_t) sscanf(text,"%ld,%ld: (%lf%*[%,]",&x_offset,              &y_offset,&red);            green=red;            blue=red;            break;          }          case CMYKColorspace:          {            if (image->matte != MagickFalse)              {                count=(ssize_t) sscanf(text,                  "%ld,%ld: (%lf%*[%,]%lf%*[%,]%lf%*[%,]%lf%*[%,]%lf%*[%,]",                  &x_offset,&y_offset,&red,&green,&blue,&index,&opacity);                break;              }            count=(ssize_t) sscanf(text,              "%ld,%ld: (%lf%*[%,]%lf%*[%,]%lf%*[%,]%lf%*[%,]",&x_offset,              &y_offset,&red,&green,&blue,&index);            break;          }          default:          {            if (image->matte != MagickFalse)              {                count=(ssize_t) sscanf(text,                  "%ld,%ld: (%lf%*[%,]%lf%*[%,]%lf%*[%,]%lf%*[%,]",                  &x_offset,&y_offset,&red,&green,&blue,&opacity);                break;              }            count=(ssize_t) sscanf(text,              "%ld,%ld: (%lf%*[%,]%lf%*[%,]%lf%*[%,]",&x_offset,&y_offset,               &red,&green,&blue);            break;          }        }        if (strchr(text,'%') != (char *) NULL)          {            red*=0.01*range;            green*=0.01*range;            blue*=0.01*range;            index*=0.01*range;            opacity*=0.01*range;          }        if (image->colorspace == LabColorspace)          {            green+=(range+1)/2.0;            blue+=(range+1)/2.0;          }        pixel.red=ScaleAnyToQuantum((QuantumAny) (red+0.5),range);        pixel.green=ScaleAnyToQuantum((QuantumAny) (green+0.5),range);        pixel.blue=ScaleAnyToQuantum((QuantumAny) (blue+0.5),range);        pixel.index=ScaleAnyToQuantum((QuantumAny) (index+0.5),range);        pixel.opacity=ScaleAnyToQuantum((QuantumAny) (opacity+0.5),range);        q=GetAuthenticPixels(image,x_offset,y_offset,1,1,exception);        if (q == (PixelPacket *) NULL)          continue;        SetPixelRed(q,pixel.red);        SetPixelGreen(q,pixel.green);        SetPixelBlue(q,pixel.blue);        if (image->colorspace == CMYKColorspace)          {            indexes=GetAuthenticIndexQueue(image);            SetPixelIndex(indexes,pixel.index);          }        if (image->matte != MagickFalse)          SetPixelAlpha(q,pixel.opacity);        if (SyncAuthenticPixels(image,exception) == MagickFalse)          break;      }    }    (void) ReadBlobString(image,text);    if (LocaleNCompare((char *) text,MagickID,strlen(MagickID)) == 0)      {        /*          Allocate next image structure.        */        AcquireNextImage(image_info,image);        if (GetNextImageInList(image) == (Image *) NULL)          {            image=DestroyImageList(image);            return((Image *) NULL);          }        image=SyncNextImageInList(image);        status=SetImageProgress(image,LoadImagesTag,TellBlob(image),          GetBlobSize(image));        if (status == MagickFalse)          break;      }  } while (LocaleNCompare((char *) text,MagickID,strlen(MagickID)) == 0);  (void) CloseBlob(image);  return(GetFirstImageInList(image));}
开发者ID:GalliumOS,项目名称:imagemagick,代码行数:101,


示例26: assert

//.........这里部分代码省略.........    /*      Verify that required image information is defined.    */    if (comment != (char *) NULL)    {        (void) SetImageProperty(image,"comment",comment);        comment=DestroyString(comment);    }    if (EOFBlob(image) != MagickFalse)        ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile",                           image->filename);    number_pixels=(MagickSizeType) fits_info.columns*fits_info.rows;    if ((fits_info.simple == MagickFalse) || (fits_info.number_axes < 1) ||            (fits_info.number_axes > 4) || (number_pixels == 0))        ThrowReaderException(CorruptImageError,"ImageTypeNotSupported");    for (scene=0; scene < (ssize_t) fits_info.number_planes; scene++)    {        image->columns=(size_t) fits_info.columns;        image->rows=(size_t) fits_info.rows;        image->depth=(size_t) (fits_info.bits_per_pixel < 0 ? -1 : 1)*                     fits_info.bits_per_pixel;        image->endian=fits_info.endian;        image->scene=(size_t) scene;        if ((image_info->ping != MagickFalse) && (image_info->number_scenes != 0))            if (image->scene >= (image_info->scene+image_info->number_scenes-1))                break;        /*          Initialize image structure.        */        if ((fits_info.min_data != 0.0) || (fits_info.max_data != 0.0))        {            if ((fits_info.bits_per_pixel != 0) && (fits_info.max_data == 0.0))                fits_info.max_data=GetFITSPixelRange((size_t)                                                     fits_info.bits_per_pixel);        }        else            GetFITSPixelExtrema(image,fits_info.bits_per_pixel,&fits_info.min_data,                                &fits_info.max_data);        /*          Convert FITS pixels to pixel packets.        */        scale=(double) QuantumRange/(fits_info.scale*(fits_info.max_data-                                     fits_info.min_data)+fits_info.zero);        for (y=(ssize_t) image->rows-1; y >= 0; y--)        {            q=QueueAuthenticPixels(image,0,y,image->columns,1,exception);            if (q == (PixelPacket *) NULL)                break;            for (x=0; x < (ssize_t) image->columns; x++)            {                pixel=GetFITSPixel(image,fits_info.bits_per_pixel);                SetPixelRed(q,ClampToQuantum(scale*(fits_info.scale*(pixel-                                                    fits_info.min_data)+fits_info.zero)));                SetPixelGreen(q,GetPixelRed(q));                SetPixelBlue(q,GetPixelRed(q));                q++;            }            if (SyncAuthenticPixels(image,exception) == MagickFalse)                break;            if (image->previous == (Image *) NULL)            {                status=SetImageProgress(image,LoadImageTag,(MagickOffsetType) y,                                        image->rows);                if (status == MagickFalse)                    break;            }        }        if (EOFBlob(image) != MagickFalse)        {            ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile",                               image->filename);            break;        }        /*          Proceed to next image.        */        if (image_info->number_scenes != 0)            if (image->scene >= (image_info->scene+image_info->number_scenes-1))                break;        if (scene < (ssize_t) (fits_info.number_planes-1))        {            /*              Allocate next image structure.            */            AcquireNextImage(image_info,image);            if (GetNextImageInList(image) == (Image *) NULL)            {                image=DestroyImageList(image);                return((Image *) NULL);            }            image=SyncNextImageInList(image);            status=SetImageProgress(image,LoadImagesTag,TellBlob(image),                                    GetBlobSize(image));            if (status == MagickFalse)                break;        }    }    (void) CloseBlob(image);    return(GetFirstImageInList(image));}
开发者ID:Deni-al,项目名称:Android-ImageMagick,代码行数:101,


示例27: assert

//.........这里部分代码省略.........%      Image *ReadMVGImage(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 *ReadMVGImage(const ImageInfo *image_info,ExceptionInfo *exception){#define BoundingBox  "viewbox"    DrawInfo    *draw_info;    Image    *image;    MagickBooleanType    status;    /*      Open image.    */    assert(image_info != (const ImageInfo *) NULL);    assert(image_info->signature == MagickSignature);    if (image_info->debug != MagickFalse)        (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",                              image_info->filename);    assert(exception != (ExceptionInfo *) NULL);    assert(exception->signature == MagickSignature);    image=AcquireImage(image_info);    status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception);    if (status == MagickFalse)    {        image=DestroyImageList(image);        return((Image *) NULL);    }    if ((image->columns == 0) || (image->rows == 0))    {        char        primitive[MaxTextExtent];        register char        *p;        SegmentInfo        bounds;        /*          Determine size of image canvas.        */        while (ReadBlobString(image,primitive) != (char *) NULL)        {            for (p=primitive; (*p == ' ') || (*p == '/t'); p++) ;            if (LocaleNCompare(BoundingBox,p,strlen(BoundingBox)) != 0)                continue;            (void) sscanf(p,"viewbox %lf %lf %lf %lf",&bounds.x1,&bounds.y1,                          &bounds.x2,&bounds.y2);            image->columns=(size_t) floor((bounds.x2-bounds.x1)+0.5);            image->rows=(size_t) floor((bounds.y2-bounds.y1)+0.5);            break;        }    }    if ((image->columns == 0) || (image->rows == 0))        ThrowReaderException(OptionError,"MustSpecifyImageSize");    draw_info=CloneDrawInfo(image_info,(DrawInfo *) NULL);    draw_info->affine.sx=image->x_resolution == 0.0 ? 1.0 : image->x_resolution/                         DefaultResolution;    draw_info->affine.sy=image->y_resolution == 0.0 ? 1.0 : image->y_resolution/                         DefaultResolution;    image->columns=(size_t) (draw_info->affine.sx*image->columns);    image->rows=(size_t) (draw_info->affine.sy*image->rows);    if (SetImageBackgroundColor(image) == MagickFalse)    {        InheritException(exception,&image->exception);        image=DestroyImageList(image);        return((Image *) NULL);    }    /*      Render drawing.    */    if (GetBlobStreamData(image) == (unsigned char *) NULL)        draw_info->primitive=FileToString(image->filename,~0UL,exception);    else    {        draw_info->primitive=(char *) AcquireMagickMemory(GetBlobSize(image)+1);        if (draw_info->primitive != (char *) NULL)        {            CopyMagickMemory(draw_info->primitive,GetBlobStreamData(image),                             GetBlobSize(image));            draw_info->primitive[GetBlobSize(image)]='/0';        }    }    (void) DrawImage(image,draw_info);    draw_info=DestroyDrawInfo(draw_info);    (void) CloseBlob(image);    return(GetFirstImageInList(image));}
开发者ID:leloulight,项目名称:cs225,代码行数:101,


示例28: ReadXCFImage

/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%                                                                             %%                                                                             %%                                                                             %%   R e a d X C F I m a g e                                                   %%                                                                             %%                                                                             %%                                                                             %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  ReadXCFImage() reads a GIMP (GNU Image Manipulation Program) image%  file and returns it.  It allocates the memory necessary for the new Image%  structure and returns a pointer to the new image.%%  The format of the ReadXCFImage method is:%%      image=ReadXCFImage(image_info)%%  A description of each parameter follows:%%    o image_info: the image info.%%    o exception: return any errors or warnings in this structure.%%*/static Image *ReadXCFImage(const ImageInfo *image_info,ExceptionInfo *exception){  char    magick[14];  Image    *image;  int    foundPropEnd = 0;  MagickBooleanType    status;  MagickOffsetType    offset;  register ssize_t    i;  size_t    length;  ssize_t    count;  size_t    image_type;  XCFDocInfo    doc_info;  /*    Open image file.  */  assert(image_info != (const ImageInfo *) NULL);  assert(image_info->signature == MagickSignature);  if (image_info->debug != MagickFalse)    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",      image_info->filename);  assert(exception != (ExceptionInfo *) NULL);  assert(exception->signature == MagickSignature);  image=AcquireImage(image_info);  status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception);  if (status == MagickFalse)    {      image=DestroyImageList(image);      return((Image *) NULL);    }  count=ReadBlob(image,14,(unsigned char *) magick);  if ((count == 0) ||      (LocaleNCompare((char *) magick,"gimp xcf",8) != 0))    ThrowReaderException(CorruptImageError,"ImproperImageHeader");  (void) ResetMagickMemory(&doc_info,0,sizeof(XCFDocInfo));  doc_info.exception=exception;  doc_info.width=ReadBlobMSBLong(image);  doc_info.height=ReadBlobMSBLong(image);  if ((doc_info.width > 262144) || (doc_info.height > 262144))    ThrowReaderException(CorruptImageError,"ImproperImageHeader");  doc_info.image_type=ReadBlobMSBLong(image);  /*    Initialize image attributes.  */  image->columns=doc_info.width;  image->rows=doc_info.height;  image_type=doc_info.image_type;  doc_info.file_size=GetBlobSize(image);  image->compression=NoCompression;  image->depth=8;  if (image_type == GIMP_RGB)    image->colorspace=RGBColorspace;  else    if (image_type == GIMP_GRAY)//.........这里部分代码省略.........
开发者ID:fightingillini5,项目名称:cs225-1,代码行数:101,


示例29: ReadMTVImage

//.........这里部分代码省略.........        (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",                              image_info->filename);    assert(exception != (ExceptionInfo *) NULL);    assert(exception->signature == MagickSignature);    image=AcquireImage(image_info);    status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception);    if (status == MagickFalse)    {        image=DestroyImageList(image);        return((Image *) NULL);    }    /*      Read MTV image.    */    (void) ReadBlobString(image,buffer);    count=(ssize_t) sscanf(buffer,"%lu %lu/n",&columns,&rows);    if (count <= 0)        ThrowReaderException(CorruptImageError,"ImproperImageHeader");    do    {        /*          Initialize image structure.        */        image->columns=columns;        image->rows=rows;        image->depth=8;        if ((image_info->ping != MagickFalse) && (image_info->number_scenes != 0))            if (image->scene >= (image_info->scene+image_info->number_scenes-1))                break;        /*          Convert MTV raster image to pixel packets.        */        pixels=(unsigned char *) AcquireQuantumMemory((size_t) image->columns,                3UL*sizeof(*pixels));        if (pixels == (unsigned char *) NULL)            ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");        for (y=0; y < (ssize_t) image->rows; y++)        {            count=(ssize_t) ReadBlob(image,(size_t) (3*image->columns),pixels);            if (count != (ssize_t) (3*image->columns))                ThrowReaderException(CorruptImageError,"UnableToReadImageData");            p=pixels;            q=QueueAuthenticPixels(image,0,y,image->columns,1,exception);            if (q == (PixelPacket *) NULL)                break;            for (x=0; x < (ssize_t) image->columns; x++)            {                SetPixelRed(q,ScaleCharToQuantum(*p++));                SetPixelGreen(q,ScaleCharToQuantum(*p++));                SetPixelBlue(q,ScaleCharToQuantum(*p++));                SetPixelOpacity(q,OpaqueOpacity);                q++;            }            if (SyncAuthenticPixels(image,exception) == MagickFalse)                break;            if (image->previous == (Image *) NULL)            {                status=SetImageProgress(image,LoadImageTag,(MagickOffsetType) y,                                        image->rows);                if (status == MagickFalse)                    break;            }        }        pixels=(unsigned char *) RelinquishMagickMemory(pixels);        if (EOFBlob(image) != MagickFalse)        {            ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile",                               image->filename);            break;        }        /*          Proceed to next image.        */        if (image_info->number_scenes != 0)            if (image->scene >= (image_info->scene+image_info->number_scenes-1))                break;        *buffer='/0';        (void) ReadBlobString(image,buffer);        count=(ssize_t) sscanf(buffer,"%lu %lu/n",&columns,&rows);        if (count > 0)        {            /*              Allocate next image structure.            */            AcquireNextImage(image_info,image);            if (GetNextImageInList(image) == (Image *) NULL)            {                image=DestroyImageList(image);                return((Image *) NULL);            }            image=SyncNextImageInList(image);            status=SetImageProgress(image,LoadImagesTag,TellBlob(image),                                    GetBlobSize(image));            if (status == MagickFalse)                break;        }    } while (count > 0);    (void) CloseBlob(image);    return(GetFirstImageInList(image));}
开发者ID:0xPr0xy,项目名称:ImageMagick,代码行数:101,


示例30: GetMetadataSize

/* * Get the metadata size information for a program item, * both on-disk and in-memory. */static void GetMetadataSize(ILSizeInfo *info, ILProgramItem *item){	ILImage *image = ILProgramItem_Image(item);	if(!item)	{		return;	}	info->meta += image->tokenSize[ILProgramItem_Token(item) >> 24];	switch(ILProgramItem_Token(item) & IL_META_TOKEN_MASK)	{		case IL_META_TOKEN_MODULE:			GetStringSize(info, ILModule_Name((ILModule *)item));			info->meta += 16;		/* GUID size */			info->loadedMeta += sizeof(ILModule);			break;		case IL_META_TOKEN_MODULE_REF:			GetStringSize(info, ILModule_Name((ILModule *)item));			info->loadedMeta += sizeof(ILModule);			break;		case IL_META_TOKEN_TYPE_REF:			info->loadedMeta += sizeof(ILClass);			info->loadedMeta += sizeof(ILProgramItemLink);			GetClassNameSize(info, (ILClass *)item);			break;		case IL_META_TOKEN_TYPE_DEF:			info->loadedMeta += sizeof(ILClass);			GetClassNameSize(info, (ILClass *)item);			break;		case IL_META_TOKEN_FIELD_DEF:			info->loadedMeta += sizeof(ILField);			GetStringSize(info, ILMember_Name(item));			GetBlobSize(info, item, ((ILMember *)item)->signatureBlob);			GetTypeSize(info, ILMember_Signature(item));			break;		case IL_META_TOKEN_METHOD_DEF:			info->loadedMeta += sizeof(ILMethod);			GetStringSize(info, ILMember_Name(item));			GetBlobSize(info, item, ((ILMember *)item)->signatureBlob);			GetTypeSize(info, ILMember_Signature(item));			break;		case IL_META_TOKEN_PARAM_DEF:			info->loadedMeta += sizeof(ILParameter);			GetStringSize(info, ILParameter_Name((ILParameter *)item));			break;		case IL_META_TOKEN_INTERFACE_IMPL:			info->loadedMeta += sizeof(ILImplements);			break;		case IL_META_TOKEN_MEMBER_REF:			if(ILMemberGetKind((ILMember *)item) == IL_META_MEMBERKIND_METHOD)			{				info->loadedMeta += sizeof(ILMethod);			}			else			{				info->loadedMeta += sizeof(ILField);			}			info->loadedMeta += sizeof(ILProgramItemLink);			GetStringSize(info, ILMember_Name(item));			GetBlobSize(info, item, ((ILMember *)item)->signatureBlob);			GetTypeSize(info, ILMember_Signature(item));			break;		case IL_META_TOKEN_CONSTANT:			info->loadedMeta += sizeof(ILConstant);			GetBlobSize(info, item, ((ILConstant *)item)->value);			break;		case IL_META_TOKEN_CUSTOM_ATTRIBUTE:			info->loadedMeta += sizeof(ILAttribute);			GetBlobSize(info, item, ((ILAttribute *)item)->value);			break;		case IL_META_TOKEN_FIELD_MARSHAL:			info->loadedMeta += sizeof(ILFieldMarshal);			GetBlobSize(info, item, ((ILFieldMarshal *)item)->type);			break;		case IL_META_TOKEN_DECL_SECURITY:			info->loadedMeta += sizeof(ILDeclSecurity);			GetBlobSize(info, item, ((ILDeclSecurity *)item)->blob);			break;		case IL_META_TOKEN_CLASS_LAYOUT:			info->loadedMeta += sizeof(ILClassLayout);			break;		case IL_META_TOKEN_FIELD_LAYOUT:			info->loadedMeta += sizeof(ILFieldLayout);//.........这里部分代码省略.........
开发者ID:bencz,项目名称:DotGnu,代码行数:101,



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


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