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

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

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

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

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

示例1: ReadRAWImage

//.........这里部分代码省略.........  count=0;  length=0;  do  {    /*      Read pixels to virtual canvas image then push to image.    */    if ((image_info->ping != MagickFalse) && (image_info->number_scenes != 0))      if (image->scene >= (image_info->scene+image_info->number_scenes-1))        break;    if (scene == 0)      {        length=GetQuantumExtent(canvas_image,quantum_info,quantum_type);        count=ReadBlob(image,length,pixels);      }    for (y=0; y < (ssize_t) image->extract_info.height; y++)    {      register const PixelPacket        *restrict p;      register PixelPacket        *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;        }      count=ReadBlob(image,length,pixels);    }    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:divyasnair123,项目名称:vegetable_store,代码行数:101,


示例2: assert

static Image *ReadWBMPImage(const ImageInfo *image_info,  ExceptionInfo *exception){  Image    *image;  int    byte;  MagickBooleanType    status;  register ssize_t    x;  register Quantum    *q;  ssize_t    y;  unsigned char    bit;  unsigned short    header;  /*    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,exception);  status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception);  if (status == MagickFalse)    {      image=DestroyImageList(image);      return((Image *) NULL);    }  if (ReadBlob(image,2,(unsigned char *) &header) == 0)    ThrowReaderException(CorruptImageError,"ImproperImageHeader");  if (header != 0)    ThrowReaderException(CoderError,"OnlyLevelZerofilesSupported");  /*    Initialize image structure.  */  if (WBMPReadInteger(image,&image->columns) == MagickFalse)    ThrowReaderException(CorruptImageError,"CorruptWBMPimage");  if (WBMPReadInteger(image,&image->rows) == MagickFalse)    ThrowReaderException(CorruptImageError,"CorruptWBMPimage");  if ((image->columns == 0) || (image->rows == 0))    ThrowReaderException(CorruptImageError,"ImproperImageHeader");  if (DiscardBlobBytes(image,image->offset) == MagickFalse)    ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile",      image->filename);  if (AcquireImageColormap(image,2,exception) == MagickFalse)    ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");  if (image_info->ping != MagickFalse)    {      (void) CloseBlob(image);      return(GetFirstImageInList(image));    }  /*    Convert bi-level image to pixel packets.  */  for (y=0; y < (ssize_t) image->rows; y++)  {    q=QueueAuthenticPixels(image,0,y,image->columns,1,exception);    if (q == (Quantum *) NULL)      break;    bit=0;    byte=0;    for (x=0; x < (ssize_t) image->columns; x++)    {      if (bit == 0)        {          byte=ReadBlobByte(image);          if (byte == EOF)            ThrowReaderException(CorruptImageError,"CorruptImage");        }      SetPixelIndex(image,(byte & (0x01 << (7-bit))) ? 1 : 0,q);      bit++;      if (bit == 8)        bit=0;      q+=GetPixelChannels(image);    }    if (SyncAuthenticPixels(image,exception) == MagickFalse)      break;    status=SetImageProgress(image,LoadImageTag,(MagickOffsetType) y,                image->rows);    if (status == MagickFalse)      break;  }  (void) SyncImage(image,exception);  if (EOFBlob(image) != MagickFalse)//.........这里部分代码省略.........
开发者ID:Distrotech,项目名称:ImageMagick,代码行数:101,


示例3: assert

//.........这里部分代码省略.........      }    else      {        /*          Create grayscale map.        */        if (AcquireImageColormap(image,image->colors) == MagickFalse)          ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");        /*          Convert SGI image to PseudoClass pixel packets.        */        if (bytes_per_pixel == 2)          {            for (y=0; y < (ssize_t) image->rows; y++)            {              p=pixels+(image->rows-y-1)*8*image->columns;              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++)              {                quantum=(*p << 8);                quantum|=(*(p+1));                SetPixelIndex(indexes+x,quantum);                p+=8;                q++;              }              if (SyncAuthenticPixels(image,exception) == MagickFalse)                break;              if (image->previous == (Image *) NULL)                {                  status=SetImageProgress(image,LoadImageTag,(MagickOffsetType)                    y,image->rows);                  if (status == MagickFalse)                    break;                }            }          }        else          for (y=0; y < (ssize_t) image->rows; y++)          {            p=pixels+(image->rows-y-1)*4*image->columns;            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);              p+=4;              q++;            }            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);      }    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;    iris_info.magic=ReadBlobMSBShort(image);    if (iris_info.magic == 0x01DA)      {        /*          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 (iris_info.magic == 0x01DA);  (void) CloseBlob(image);  return(GetFirstImageInList(image));}
开发者ID:UIKit0,项目名称:YoyaMagick,代码行数:101,


示例4: ReadYCBCRImage

//.........这里部分代码省略.........          if (q == (PixelPacket *) NULL)            break;          length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,            quantum_info,RedQuantum,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,                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 < (ssize_t) image->columns; x++)              {                SetRedPixelComponent(q,GetRedPixelComponent(p));                p++;                q++;              }              if (SyncAuthenticPixels(image,exception) == MagickFalse)                break;            }          count=ReadBlob(image,length,pixels);        }        if (image->previous == (Image *) NULL)          {            status=SetImageProgress(image,LoadImageTag,1,5);            if (status == MagickFalse)              break;          }        (void) CloseBlob(image);        AppendImageFormat("Cb",image->filename);        status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception);        if (status == MagickFalse)          {            canvas_image=DestroyImageList(canvas_image);            image=DestroyImageList(image);            return((Image *) NULL);          }        length=GetQuantumExtent(canvas_image,quantum_info,GreenQuantum);        for (i=0; i < (ssize_t) scene; i++)          for (y=0; y < (ssize_t) image->extract_info.height; y++)            if (ReadBlob(image,length,pixels) != (ssize_t) length)              {                ThrowFileException(exception,CorruptImageError,                  "UnexpectedEndOfFile",image->filename);                break;              }        count=ReadBlob(image,length,pixels);        for (y=0; y < (ssize_t) image->extract_info.height; y++)        {          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,GreenQuantum,pixels,exception);
开发者ID:0xPr0xy,项目名称:ImageMagick,代码行数:67,


示例5: WriteAVSImage

//.........这里部分代码省略.........%%    o image_info: the image info.%%    o image:  The image.%*/static MagickBooleanType WriteAVSImage(const ImageInfo *image_info,Image *image){  MagickBooleanType    status;  MagickOffsetType    scene;  register const PixelPacket    *restrict p;  register ssize_t    x;  register unsigned char    *restrict q;  ssize_t    count,    y;  unsigned char    *pixels;  /*    Open output image file.  */  assert(image_info != (const ImageInfo *) NULL);  assert(image_info->signature == MagickSignature);  assert(image != (Image *) NULL);  assert(image->signature == MagickSignature);  if (image->debug != MagickFalse)    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);  status=OpenBlob(image_info,image,WriteBinaryBlobMode,&image->exception);  if (status == MagickFalse)    return(status);  scene=0;  do  {    /*      Write AVS header.    */    if (IssRGBCompatibleColorspace(image->colorspace) == MagickFalse)      (void) TransformImageColorspace(image,sRGBColorspace);    (void) WriteBlobMSBLong(image,(unsigned int) image->columns);    (void) WriteBlobMSBLong(image,(unsigned int) image->rows);    /*      Allocate memory for pixels.    */    pixels=(unsigned char *) AcquireQuantumMemory((size_t) image->columns,      4*sizeof(*pixels));    if (pixels == (unsigned char *) NULL)      ThrowWriterException(ResourceLimitError,"MemoryAllocationFailed");    /*      Convert MIFF to AVS raster pixels.    */    for (y=0; y < (ssize_t) image->rows; y++)    {      p=GetVirtualPixels(image,0,y,image->columns,1,&image->exception);      if (p == (PixelPacket *) NULL)        break;      q=pixels;      for (x=0; x < (ssize_t) image->columns; x++)      {        *q++=ScaleQuantumToChar((Quantum) (QuantumRange-(image->matte !=          MagickFalse ? GetPixelOpacity(p) : OpaqueOpacity)));        *q++=ScaleQuantumToChar(GetPixelRed(p));        *q++=ScaleQuantumToChar(GetPixelGreen(p));        *q++=ScaleQuantumToChar(GetPixelBlue(p));        p++;      }      count=WriteBlob(image,(size_t) (q-pixels),pixels);      if (count != (ssize_t) (q-pixels))        break;      if (image->previous == (Image *) NULL)        {          status=SetImageProgress(image,SaveImageTag,(MagickOffsetType) y,            image->rows);          if (status == MagickFalse)            break;        }    }    pixels=(unsigned char *) RelinquishMagickMemory(pixels);    if (GetNextImageInList(image) == (Image *) NULL)      break;    image=SyncNextImageInList(image);    status=SetImageProgress(image,SaveImagesTag,scene++,      GetImageListLength(image));    if (status == MagickFalse)      break;  } while (image_info->adjoin != MagickFalse);  (void) CloseBlob(image);  return(MagickTrue);}
开发者ID:0xPr0xy,项目名称:ImageMagick,代码行数:101,


示例6: WritePCLImage

//.........这里部分代码省略.........            *q++=byte << (8-bit);          break;        }        case 8:        {          /*            Colormapped image.          */          for (x=0; x < (ssize_t) image->columns; x++)          {            *q++=(unsigned char) GetPixelIndex(image,p);            p+=GetPixelChannels(image);          }          break;        }        case 24:        case 32:        {          /*            Truecolor image.          */          for (x=0; x < (ssize_t) image->columns; x++)          {            *q++=ScaleQuantumToChar(GetPixelRed(image,p));            *q++=ScaleQuantumToChar(GetPixelGreen(image,p));            *q++=ScaleQuantumToChar(GetPixelBlue(image,p));            p+=GetPixelChannels(image);          }          break;        }      }      switch (compression)      {        case NoCompression:        {          (void) FormatLocaleString(buffer,MaxTextExtent,"/033*b%.20gW",            (double) length);          (void) WriteBlobString(image,buffer);          (void) WriteBlob(image,length,pixels);          break;        }        case RLECompression:        {          packets=PCLPackbitsCompressImage(length,pixels,compress_pixels);          (void) FormatLocaleString(buffer,MaxTextExtent,"/033*b%.20gW",            (double) packets);          (void) WriteBlobString(image,buffer);          (void) WriteBlob(image,packets,compress_pixels);          break;        }        default:        {          if (y == 0)            for (i=0; i < (ssize_t) length; i++)              previous_pixels[i]=(~pixels[i]);          packets=PCLDeltaCompressImage(length,previous_pixels,pixels,            compress_pixels);          (void) FormatLocaleString(buffer,MaxTextExtent,"/033*b%.20gW",            (double) packets);          (void) WriteBlobString(image,buffer);          (void) WriteBlob(image,packets,compress_pixels);          (void) CopyMagickMemory(previous_pixels,pixels,length*            sizeof(*pixels));          break;        }      }    }    (void) WriteBlobString(image,"/033*rB");  /* end graphics */    switch (compression)    {      case NoCompression:        break;      case RLECompression:      {        compress_pixels=(unsigned char *) RelinquishMagickMemory(          compress_pixels);        break;      }      default:      {        previous_pixels=(unsigned char *) RelinquishMagickMemory(          previous_pixels);        compress_pixels=(unsigned char *) RelinquishMagickMemory(          compress_pixels);        break;      }    }    pixels=(unsigned char *) RelinquishMagickMemory(pixels);    if (GetNextImageInList(image) == (Image *) NULL)      break;    image=SyncNextImageInList(image);    status=SetImageProgress(image,SaveImagesTag,scene++,      GetImageListLength(image));    if (status == MagickFalse)      break;  } while (image_info->adjoin != MagickFalse);  (void) WriteBlobString(image,"/033E");  (void) CloseBlob(image);  return(MagickTrue);}
开发者ID:0xPr0xy,项目名称:ImageMagick,代码行数:101,


示例7: assert

//.........这里部分代码省略.........        {            BITMAPINFO            DIBinfo;            BITMAP            bitmap;            HBITMAP            hBitmap,            hOldBitmap;            HDC            hDC,            hMemDC;            RGBQUAD            *pBits,            *ppBits;            /* create an offscreen DC for the source */            hMemDC=CreateCompatibleDC(NULL);            hOldBitmap=(HBITMAP) SelectObject(hMemDC,bitmapH);            GetObject(bitmapH,sizeof(BITMAP),(LPSTR) &bitmap);            if ((image->columns == 0) || (image->rows == 0))            {                image->columns=bitmap.bmWidth;                image->rows=bitmap.bmHeight;            }            status=SetImageExtent(image,image->columns,image->rows);            if (status == MagickFalse)            {                InheritException(exception,&image->exception);                return(DestroyImageList(image));            }            /*              Initialize the bitmap header info.            */            (void) ResetMagickMemory(&DIBinfo,0,sizeof(BITMAPINFO));            DIBinfo.bmiHeader.biSize=sizeof(BITMAPINFOHEADER);            DIBinfo.bmiHeader.biWidth=(LONG) image->columns;            DIBinfo.bmiHeader.biHeight=(-1)*(LONG) image->rows;            DIBinfo.bmiHeader.biPlanes=1;            DIBinfo.bmiHeader.biBitCount=32;            DIBinfo.bmiHeader.biCompression=BI_RGB;            hDC=GetDC(NULL);            if (hDC == 0)                ThrowReaderException(CoderError,"UnableToCreateADC");            hBitmap=CreateDIBSection(hDC,&DIBinfo,DIB_RGB_COLORS,(void **) &ppBits,                                     NULL,0);            ReleaseDC(NULL,hDC);            if (hBitmap == 0)                ThrowReaderException(CoderError,"UnableToCreateBitmap");            /* create an offscreen DC */            hDC=CreateCompatibleDC(NULL);            if (hDC == 0)            {                DeleteObject(hBitmap);                ThrowReaderException(CoderError,"UnableToCreateADC");            }            hOldBitmap=(HBITMAP) SelectObject(hDC,hBitmap);            if (hOldBitmap == 0)            {                DeleteDC(hDC);                DeleteObject(hBitmap);                ThrowReaderException(CoderError,"UnableToCreateBitmap");            }            if (hPal != NULL)            {                /* Kenichi Masuko says this needed */                SelectPalette(hDC, hPal, FALSE);                RealizePalette(hDC);            }            /* bitblt from the memory to the DIB-based one */            BitBlt(hDC,0,0,(int) image->columns,(int) image->rows,hMemDC,0,0,SRCCOPY);            /* finally copy the pixels! */            pBits=ppBits;            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,ScaleCharToQuantum(pBits->rgbRed));                    SetPixelGreen(q,ScaleCharToQuantum(pBits->rgbGreen));                    SetPixelBlue(q,ScaleCharToQuantum(pBits->rgbBlue));                    SetPixelOpacity(q,OpaqueOpacity);                    pBits++;                    q++;                }                if (SyncAuthenticPixels(image,exception) == MagickFalse)                    break;            }            DeleteDC(hDC);            DeleteObject(hBitmap);        }    }    (void) CloseBlob(image);    return(GetFirstImageInList(image));}
开发者ID:dadsez,项目名称:SnoutPoint-Networks,代码行数:101,


示例8: WriteMPEGImage

static MagickBooleanType WriteMPEGImage(const ImageInfo *image_info,                                        Image *image){#define WriteMPEGIntermediateFormat "jpg"    char    basename[MaxTextExtent],             filename[MaxTextExtent];    double    delay;    Image    *coalesce_image;    ImageInfo    *write_info;    int    file;    MagickBooleanType    status;    register Image    *p;    register long    i;    size_t    length;    unsigned char    *blob;    unsigned long    count,    scene;    /*      Open output image file.    */    assert(image_info != (const ImageInfo *) NULL);    assert(image_info->signature == MagickSignature);    assert(image != (Image *) NULL);    assert(image->signature == MagickSignature);    if (image->debug != MagickFalse)        (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);    status=OpenBlob(image_info,image,WriteBinaryBlobMode,&image->exception);    if (status == MagickFalse)        return(status);    (void) CloseBlob(image);    /*      Write intermediate files.    */    coalesce_image=CoalesceImages(image,&image->exception);    if (coalesce_image == (Image *) NULL)        return(MagickFalse);    file=AcquireUniqueFileResource(basename);    if (file != -1)        file=close(file)-1;    (void) FormatMagickString(coalesce_image->filename,MaxTextExtent,"%s",                              basename);    count=0;    write_info=CloneImageInfo(image_info);    for (p=coalesce_image; p != (Image *) NULL; p=GetNextImageInList(p))    {        char        previous_image[MaxTextExtent];        blob=(unsigned char *) NULL;        length=0;        scene=p->scene;        delay=100.0*p->delay/MagickMax(1.0*p->ticks_per_second,1.0);        for (i=0; i < (long) MagickMax((1.0*delay+1.0)/3.0,1.0); i++)        {            p->scene=count;            count++;            status=MagickFalse;            switch (i)            {            case 0:            {                Image                *frame;                (void) FormatMagickString(p->filename,MaxTextExtent,"%s%lu.%s",                                          basename,p->scene,WriteMPEGIntermediateFormat);                (void) FormatMagickString(filename,MaxTextExtent,"%s%lu.%s",                                          basename,p->scene,WriteMPEGIntermediateFormat);                (void) FormatMagickString(previous_image,MaxTextExtent,                                          "%s%lu.%s",basename,p->scene,WriteMPEGIntermediateFormat);                frame=CloneImage(p,0,0,MagickTrue,&p->exception);                if (frame == (Image *) NULL)                    break;                status=WriteImage(write_info,frame);                frame=DestroyImage(frame);                break;            }//.........这里部分代码省略.........
开发者ID:0xPr0xy,项目名称:ImageMagick,代码行数:101,


示例9: WriteHRZImage

//.........这里部分代码省略.........%                                                                             %%   W r i t e H R Z I m a g e                                                 %%                                                                             %%                                                                             %%                                                                             %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  WriteHRZImage() writes an image to a file in HRZ X image format.%%  The format of the WriteHRZImage method is:%%      MagickBooleanType WriteHRZImage(const ImageInfo *image_info,Image *image)%%  A description of each parameter follows.%%    o image_info: the image info.%%    o image:  The image.%*/static MagickBooleanType WriteHRZImage(const ImageInfo *image_info,Image *image){  Image    *hrz_image;  MagickBooleanType    status;  register const PixelPacket    *p;  register ssize_t    x,    y;  register unsigned char    *q;  ssize_t    count;  unsigned char    *pixels;  /*    Open output image file.  */  assert(image_info != (const ImageInfo *) NULL);  assert(image_info->signature == MagickSignature);  assert(image != (Image *) NULL);  assert(image->signature == MagickSignature);  if (image->debug != MagickFalse)    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);  status=OpenBlob(image_info,image,WriteBinaryBlobMode,&image->exception);  if (status == MagickFalse)    return(status);  hrz_image=ResizeImage(image,256,240,image->filter,image->blur,    &image->exception);  if (hrz_image == (Image *) NULL)    return(MagickFalse);  if (hrz_image->colorspace != RGBColorspace)    (void) TransformImageColorspace(hrz_image,RGBColorspace);  /*    Allocate memory for pixels.  */  pixels=(unsigned char *) AcquireQuantumMemory((size_t) hrz_image->columns,    3*sizeof(*pixels));  if (pixels == (unsigned char *) NULL)    {      hrz_image=DestroyImage(hrz_image);      ThrowWriterException(ResourceLimitError,"MemoryAllocationFailed");    }  /*    Convert MIFF to HRZ raster pixels.  */  for (y=0; y < (ssize_t) hrz_image->rows; y++)  {    p=GetVirtualPixels(hrz_image,0,y,hrz_image->columns,1,&image->exception);    if (p == (PixelPacket *) NULL)      break;    q=pixels;    for (x=0; x < (ssize_t) hrz_image->columns; x++)    {      *q++=ScaleQuantumToChar(GetPixelRed(p))/4;      *q++=ScaleQuantumToChar(GetPixelGreen(p))/4;      *q++=ScaleQuantumToChar(GetPixelBlue(p))/4;      p++;    }    count=WriteBlob(image,(size_t) (q-pixels),pixels);    if (count != (ssize_t) (q-pixels))      break;    status=SetImageProgress(image,SaveImageTag,y,hrz_image->rows);    if (status == MagickFalse)      break;  }  pixels=(unsigned char *) RelinquishMagickMemory(pixels);  hrz_image=DestroyImage(hrz_image);  (void) CloseBlob(image);  return(MagickTrue);}
开发者ID:0xPr0xy,项目名称:ImageMagick,代码行数:101,


示例10: assert

//.........这里部分代码省略.........  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 MTV image.  */  (void) ReadBlobString(image,buffer);  columns=0;  rows=0;  count=sscanf(buffer,"%lu %lu/n",&columns,&rows);  if (count != 2)    ThrowReaderException(CorruptImageError,ImproperImageHeader,image);  do  {    size_t      row_size;        /*      Initialize image structure.    */    image->columns=columns;    image->rows=rows;    image->depth=8;    if (image_info->ping && (image_info->subrange != 0))      if (image->scene >= (image_info->subimage+image_info->subrange-1))        break;    /*      Convert MTV raster image to pixel packets.    */    pixels=MagickAllocateArray(unsigned char *,image->columns,3);    if (pixels == (unsigned char *) NULL)      ThrowReaderException(ResourceLimitError,MemoryAllocationFailed,image);    row_size=image->columns*3;    for (y=0; y < (long) image->rows; y++)    {      if (ReadBlob(image,row_size,pixels) != row_size)        ThrowReaderException(CorruptImageError,UnexpectedEndOfFile,image);      p=pixels;      q=SetImagePixels(image,0,y,image->columns,1);      if (q == (PixelPacket *) NULL)        break;      for (x=0; x < (long) image->columns; x++)      {        q->red=ScaleCharToQuantum(*p++);        q->green=ScaleCharToQuantum(*p++);        q->blue=ScaleCharToQuantum(*p++);        q++;      }      if (!SyncImagePixels(image))        break;      if (image->previous == (Image *) NULL)        if (QuantumTick(y,image->rows))          if (!MagickMonitorFormatted(y,image->rows,exception,LoadImageText,                                      image->filename,				      image->columns,image->rows))            break;    }    MagickFreeMemory(pixels);    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;    *buffer='/0';    (void) ReadBlobString(image,buffer);    count=sscanf(buffer,"%lu %lu/n",&columns,&rows);    if (count == 2)      {        /*          Allocate next image structure.        */        AllocateNextImage(image_info,image);        if (image->next == (Image *) NULL)          {            DestroyImageList(image);            return((Image *) NULL);          }        image=SyncNextImageInList(image);        if (!MagickMonitorFormatted(TellBlob(image),GetBlobSize(image),                                    exception,LoadImagesText,                                    image->filename))          break;      }  } while (count == 2);  while (image->previous != (Image *) NULL)    image=image->previous;  CloseBlob(image);  return(image);}
开发者ID:CliffsDover,项目名称:graphicsmagick,代码行数:101,


示例11: assert

//.........这里部分代码省略.........    *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.  */  if (GetBlobSize(image) != (size_t) GetBlobSize(image))    ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");  buffer=(unsigned char *) AcquireQuantumMemory((size_t) GetBlobSize(image),    sizeof(*buffer));  if (buffer == (unsigned char *) NULL)    ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");  count=ReadBlob(image,(size_t) GetBlobSize(image),buffer);  if ((count != (ssize_t) GetBlobSize(image)) ||      (LocaleNCompare((char *) buffer,"SFW",3) != 0))    ThrowReaderException(CorruptImageError,"ImproperImageHeader");  (void) CloseBlob(image);  /*    Find the start of the JFIF data  */  header=SFWScan(buffer,buffer+count-1,(const unsigned char *)    "/377/310/377/320",4);  if (header == (unsigned char *) NULL)    {      buffer=(unsigned char *) RelinquishMagickMemory(buffer);      ThrowReaderException(CorruptImageError,"ImproperImageHeader");    }  TranslateSFWMarker(header);  /* translate soi and app tags */  TranslateSFWMarker(header+2);  (void) CopyMagickMemory(header+6,"JFIF/0/001/0",7);  /* JFIF magic */  /*    Translate remaining markers.  */  offset=header+2;  offset+=(((unsigned int) offset[2]) << 8)+offset[3]+2;  for ( ; ; )  {    if ((offset+4) > (buffer+count-1))      {        buffer=(unsigned char *) RelinquishMagickMemory(buffer);        ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");      }    TranslateSFWMarker(offset);    if (offset[1] == 0xda)      break;    offset+=(((unsigned int) offset[2]) << 8)+offset[3]+2;  }  offset--;  data=SFWScan(offset,buffer+count-1,(const unsigned char *) "/377/311",2);
开发者ID:0xPr0xy,项目名称:ImageMagick,代码行数:67,


示例12: WriteMTVImage

//.........这里部分代码省略.........%%    o status: Method WriteMTVImage return True if the image is written.%      False is returned is there is a memory shortage or if the image file%      fails to write.%%    o image_info: Specifies a pointer to a ImageInfo structure.%%    o image:  A pointer to an Image structure.%%*/static unsigned int WriteMTVImage(const ImageInfo *image_info,Image *image){  char    buffer[MaxTextExtent];  int    y;  register const PixelPacket    *p;  register long    x;  register unsigned char    *q;  unsigned char    *pixels;  unsigned int    status;  unsigned long    scene;  /*    Open output image file.  */  assert(image_info != (const ImageInfo *) NULL);  assert(image_info->signature == MagickSignature);  assert(image != (Image *) NULL);  assert(image->signature == MagickSignature);  status=OpenBlob(image_info,image,WriteBinaryBlobMode,&image->exception);  if (status == False)    ThrowWriterException(FileOpenError,UnableToOpenFile,image);  scene=0;  do  {    /*      Allocate memory for pixels.    */    (void) TransformColorspace(image,RGBColorspace);    pixels=MagickAllocateMemory(unsigned char *,      image->columns*sizeof(PixelPacket));    if (pixels == (unsigned char *) NULL)      ThrowWriterException(ResourceLimitError,MemoryAllocationFailed,image);    /*      Initialize raster file header.    */    FormatString(buffer,"%lu %lu/n",image->columns,image->rows);    (void) WriteBlobString(image,buffer);    for (y=0; y < (long) image->rows; y++)    {      p=AcquireImagePixels(image,0,y,image->columns,1,&image->exception);      if (p == (const PixelPacket *) NULL)        break;      q=pixels;      for (x=0; x < (long) image->columns; x++)      {        *q++=ScaleQuantumToChar(p->red);        *q++=ScaleQuantumToChar(p->green);        *q++=ScaleQuantumToChar(p->blue);        p++;      }      (void) WriteBlob(image,q-pixels,(char *) pixels);      if (image->previous == (Image *) NULL)        if (QuantumTick(y,image->rows))          if (!MagickMonitorFormatted(y,image->rows,&image->exception,                                      SaveImageText,image->filename,				      image->columns,image->rows))            break;    }    MagickFreeMemory(pixels);    if (image->next == (Image *) NULL)      break;    image=SyncNextImageInList(image);    status=MagickMonitorFormatted(scene++,GetImageListLength(image),                                  &image->exception,SaveImagesText,                                  image->filename);    if (status == False)      break;  } while (image_info->adjoin);  if (image_info->adjoin)    while (image->previous != (Image *) NULL)      image=image->previous;  CloseBlob(image);  return(True);}
开发者ID:CliffsDover,项目名称:graphicsmagick,代码行数:101,


示例13: KeyringCommand

//.........这里部分代码省略.........              LogEventType                event_mask;              i++;              if (i == (ssize_t) argc)                ThrowKeyringException(OptionError,"missing log event mask: "                  "`%s'",option);              event_mask=SetLogEventMask(argv[i]);              if (event_mask == UndefinedEvents)                ThrowKeyringException(OptionFatalError,"unrecognized log event "                  "type: `%s'",argv[i]);              break;            }          ThrowKeyringException(OptionFatalError,"unrecognized option: `%s'",            option);          break;        }        case 'h':        {          if ((LocaleCompare("help",option+1) == 0) ||              (LocaleCompare("-help",option+1) == 0))            KeyringUsage();          ThrowKeyringException(OptionFatalError,"unrecognized option: `%s'",            option);          break;        }        case 'l':        {          if (LocaleCompare(option,"-list") == 0)            {              ssize_t                list;              if (*option == '+')                break;              i++;              if (i == (ssize_t) argc)                ThrowKeyringException(OptionError,"missing list type: `%s'",                  option);              if (LocaleCompare(argv[i],"configure") == 0)                {                  (void) ListConfigureInfo((FILE *) NULL,exception);                  Exit(0);                }              list=ParseWizardOption(WizardListOptions,WizardFalse,argv[i]);              if (list < 0)                ThrowKeyringException(OptionFatalError,"unrecognized list "                  "type: `%s'",argv[i]);              (void) ListWizardOptions((FILE *) NULL,(WizardOption) list,                exception);              Exit(0);              break;            }          if (LocaleCompare("log",option+1) == 0)            {              if (*option == '+')                break;              i++;              if ((i == (ssize_t) argc) ||                  (strchr(argv[i],'%') == (char *) NULL))                ThrowKeyringException(OptionFatalError,"missing argument: `%s'",                  option);              break;            }          ThrowKeyringException(OptionFatalError,"unrecognized option: `%s'",            option);          break;        }        case 'v':        {          if (LocaleCompare(option,"-version") == 0)            {              (void) fprintf(stdout,"Version: %s/n",GetWizardVersion(                (size_t *) NULL));              (void) fprintf(stdout,"Copyright: %s/n/n",GetWizardCopyright());              exit(0);            }          ThrowKeyringException(OptionFatalError,"unrecognized option: `%s'",            option);          break;        }        default:        {          ThrowKeyringException(OptionFatalError,"unrecognized option: `%s'",            option);          break;        }      }    status=PrintKeyringProperties(argv[i],keyring_blob,exception);  }  if (argc == 2)    status=PrintKeyringProperties((const char *) NULL,keyring_blob,exception);  (void) WriteBlobString(keyring_blob,"</rdf:RDF>/n");  status=CloseBlob(keyring_blob);  /*    Free resources.  */  DestroyKeyring();  return(status);}
开发者ID:ImageMagick,项目名称:WizardsToolkit,代码行数:101,


示例14: WriteDEBUGImage

//.........这里部分代码省略.........    buffer[MagickPathExtent],    colorspace[MagickPathExtent],    tuple[MagickPathExtent];  ssize_t    y;  MagickBooleanType    status;  MagickOffsetType    scene;  PixelInfo    pixel;  register const Quantum    *p;  register ssize_t    x;  /*    Open output image file.  */  assert(image_info != (const ImageInfo *) NULL);  assert(image_info->signature == MagickSignature);  assert(image != (Image *) NULL);  assert(image->signature == MagickSignature);  if (image->debug != MagickFalse)    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);  status=OpenBlob(image_info,image,WriteBlobMode,exception);  if (status == MagickFalse)    return(status);  scene=0;  do  {    (void) CopyMagickString(colorspace,CommandOptionToMnemonic(      MagickColorspaceOptions,(ssize_t) image->colorspace),MagickPathExtent);    LocaleLower(colorspace);    image->depth=GetImageQuantumDepth(image,MagickTrue);    if (image->alpha_trait != UndefinedPixelTrait)      (void) ConcatenateMagickString(colorspace,"a",MagickPathExtent);    (void) FormatLocaleString(buffer,MagickPathExtent,      "# ImageMagick pixel debugging: %.20g,%.20g,%.20g,%s/n",(double)      image->columns,(double) image->rows,(double) ((MagickOffsetType)      GetQuantumRange(image->depth)),colorspace);    (void) WriteBlobString(image,buffer);    GetPixelInfo(image,&pixel);    for (y=0; y < (ssize_t) image->rows; y++)    {      p=GetVirtualPixels(image,0,y,image->columns,1,exception);      if (p == (const Quantum *) NULL)        break;      for (x=0; x < (ssize_t) image->columns; x++)      {        (void) FormatLocaleString(buffer,MagickPathExtent,"%.20g,%.20g: ",(double)          x,(double) y);        (void) WriteBlobString(image,buffer);        GetPixelInfoPixel(image,p,&pixel);        (void) FormatLocaleString(tuple,MagickPathExtent,"%.20g,%.20g,%.20g ",          (double) pixel.red,(double) pixel.green,(double) pixel.blue);        if (pixel.colorspace == CMYKColorspace)          {            char              black[MagickPathExtent];            (void) FormatLocaleString(black,MagickPathExtent,",%.20g ",              (double) pixel.black);            (void) ConcatenateMagickString(tuple,black,MagickPathExtent);          }        if (pixel.alpha_trait != UndefinedPixelTrait)          {            char              alpha[MagickPathExtent];            (void) FormatLocaleString(alpha,MagickPathExtent,",%.20g ",              (double) pixel.alpha);            (void) ConcatenateMagickString(tuple,alpha,MagickPathExtent);          }        (void) WriteBlobString(image,tuple);        (void) WriteBlobString(image,"/n");        p+=GetPixelChannels(image);      }      status=SetImageProgress(image,SaveImageTag,(MagickOffsetType) y,        image->rows);      if (status == MagickFalse)        break;    }    if (GetNextImageInList(image) == (Image *) NULL)      break;    image=SyncNextImageInList(image);    status=SetImageProgress(image,SaveImagesTag,scene++,      GetImageListLength(image));    if (status == MagickFalse)      break;  } while (image_info->adjoin != MagickFalse);  (void) CloseBlob(image);  return(MagickTrue);}
开发者ID:edalquist,项目名称:ImageMagick,代码行数:101,


示例15: ReadMTVImage

//.........这里部分代码省略.........  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 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 < (long) 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 < (long) image->columns; x++)      {        q->red=ScaleCharToQuantum(*p++);        q->green=ScaleCharToQuantum(*p++);        q->blue=ScaleCharToQuantum(*p++);        q->opacity=OpaqueOpacity;        q++;      }      if (SyncAuthenticPixels(image,exception) == MagickFalse)        break;      if (image->previous == (Image *) NULL)        {          status=SetImageProgress(image,LoadImageTag,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,


示例16: ReadHRZImage

//.........这里部分代码省略.........%%  ReadHRZImage() reads a Slow Scan TeleVision 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 ReadHRZImage method is:%%      Image *ReadHRZImage(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 *ReadHRZImage(const ImageInfo *image_info,ExceptionInfo *exception){  Image    *image;  MagickBooleanType    status;  register ssize_t    x;  register PixelPacket    *q;  register unsigned char    *p;  ssize_t    count,    y;  size_t    length;  unsigned char    *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);    }  /*    Convert HRZ raster image to pixel packets.  */  image->columns=256;  image->rows=240;  image->depth=8;  pixels=(unsigned char *) AcquireQuantumMemory(image->columns,3*    sizeof(*pixels));  if (pixels == (unsigned char *) NULL)     ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");  length=(size_t) (3*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++)    {      SetPixelRed(q,4*ScaleCharToQuantum(*p++));      SetPixelGreen(q,4*ScaleCharToQuantum(*p++));      SetPixelBlue(q,4*ScaleCharToQuantum(*p++));      SetPixelOpacity(q,OpaqueOpacity);      q++;    }    if (SyncAuthenticPixels(image,exception) == MagickFalse)      break;    if (SetImageProgress(image,LoadImageTag,y,image->rows) == MagickFalse)      break;  }  pixels=(unsigned char *) RelinquishMagickMemory(pixels);  if (EOFBlob(image) != MagickFalse)    ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile",      image->filename);  (void) CloseBlob(image);  return(GetFirstImageInList(image));}
开发者ID:0xPr0xy,项目名称:ImageMagick,代码行数:101,


示例17: ReadPCLImage

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


示例18: ReadImage

//.........这里部分代码省略.........            unsigned long              lsb_first;            lsb_first=1;            read_info->endian=(*(char *) &lsb_first) == 1 ? LSBEndian :              MSBEndian;         }    }  if ((magick_info != (const MagickInfo *) NULL) &&      (GetMagickSeekableStream(magick_info) != MagickFalse))    {      MagickBooleanType        status;      image=AcquireImage(read_info,exception);      (void) CopyMagickString(image->filename,read_info->filename,        MagickPathExtent);      status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception);      if (status == MagickFalse)        {          read_info=DestroyImageInfo(read_info);          image=DestroyImage(image);          return((Image *) NULL);        }      if (IsBlobSeekable(image) == MagickFalse)        {          /*            Coder requires a seekable stream.          */          *read_info->filename='/0';          status=ImageToFile(image,read_info->filename,exception);          if (status == MagickFalse)            {              (void) CloseBlob(image);              read_info=DestroyImageInfo(read_info);              image=DestroyImage(image);              return((Image *) NULL);            }          read_info->temporary=MagickTrue;        }      (void) CloseBlob(image);      image=DestroyImage(image);    }  image=NewImageList();  if ((magick_info == (const MagickInfo *) NULL) ||      (GetImageDecoder(magick_info) == (DecodeImageHandler *) NULL))    {      delegate_info=GetDelegateInfo(read_info->magick,(char *) NULL,exception);      if (delegate_info == (const DelegateInfo *) NULL)        {          (void) SetImageInfo(read_info,0,exception);          (void) CopyMagickString(read_info->filename,filename,            MagickPathExtent);          magick_info=GetMagickInfo(read_info->magick,exception);        }    }  if ((magick_info != (const MagickInfo *) NULL) &&      (GetImageDecoder(magick_info) != (DecodeImageHandler *) NULL))    {      if (GetMagickDecoderThreadSupport(magick_info) == MagickFalse)        LockSemaphoreInfo(magick_info->semaphore);      image=GetImageDecoder(magick_info)(read_info,exception);      if (GetMagickDecoderThreadSupport(magick_info) == MagickFalse)        UnlockSemaphoreInfo(magick_info->semaphore);    }  else
开发者ID:278443820,项目名称:ImageMagick,代码行数:67,


示例19: ReadHDRImage

//.........这里部分代码省略.........                  (void) sscanf(value,"%d +X %d",&height,&width);                  image->columns=(size_t) width;                  image->rows=(size_t) height;                  break;                }              (void) FormatLocaleString(tag,MaxTextExtent,"hdr:%s",keyword);              (void) SetImageProperty(image,tag,value);              break;            }            default:            {              (void) FormatLocaleString(tag,MaxTextExtent,"hdr:%s",keyword);              (void) SetImageProperty(image,tag,value);              break;            }          }        }    if ((image->columns == 0) && (image->rows == 0))      while (isspace((int) ((unsigned char) c)) != 0)        c=ReadBlobByte(image);  }  if ((LocaleCompare(format,"32-bit_rle_rgbe") != 0) &&      (LocaleCompare(format,"32-bit_rle_xyze") != 0))    ThrowReaderException(CorruptImageError,"ImproperImageHeader");  if ((image->columns == 0) || (image->rows == 0))    ThrowReaderException(CorruptImageError,"NegativeOrZeroImageSize");  (void) SetImageColorspace(image,RGBColorspace);  if (LocaleCompare(format,"32-bit_rle_xyze") == 0)    (void) SetImageColorspace(image,XYZColorspace);  image->compression=(image->columns < 8) || (image->columns > 0x7ffff) ?    NoCompression : RLECompression;  if (image_info->ping != MagickFalse)    {      (void) CloseBlob(image);      return(GetFirstImageInList(image));    }  /*    Read RGBE (red+green+blue+exponent) pixels.  */  pixels=(unsigned char *) AcquireQuantumMemory(image->columns,4*    sizeof(*pixels));  if (pixels == (unsigned char *) NULL)    ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");  for (y=0; y < (ssize_t) image->rows; y++)  {    if (image->compression != RLECompression)      {        count=ReadBlob(image,4*image->columns*sizeof(*pixels),pixels);        if (count != (ssize_t) (4*image->columns*sizeof(*pixels)))          break;      }    else      {        count=ReadBlob(image,4*sizeof(*pixel),pixel);        if (count != 4)          break;        if ((size_t) ((((size_t) pixel[2]) << 8) | pixel[3]) != image->columns)          {            (void) memcpy(pixels,pixel,4*sizeof(*pixel));            count=ReadBlob(image,4*(image->columns-1)*sizeof(*pixels),pixels+4);            image->compression=NoCompression;          }        else          {            p=pixels;            for (i=0; i < 4; i++)
开发者ID:0xPr0xy,项目名称:ImageMagick,代码行数:67,


示例20: WriteImage

//.........这里部分代码省略.........          (void) CopyMagickString(image->filename,image->magick_filename,            MagickPathExtent);          status=InvokeDelegate(write_info,image,image->magick,            write_info->magick,exception);          write_info=DestroyImageInfo(write_info);          (void) CopyMagickString(image->filename,filename,MagickPathExtent);          return(status);        }    }  status=MagickFalse;  temporary=MagickFalse;  if ((magick_info != (const MagickInfo *) NULL) &&      (GetMagickSeekableStream(magick_info) != MagickFalse))    {      char        image_filename[MagickPathExtent];      (void) CopyMagickString(image_filename,image->filename,MagickPathExtent);      status=OpenBlob(image_info,image,WriteBinaryBlobMode,exception);      (void) CopyMagickString(image->filename, image_filename,MagickPathExtent);      if (status != MagickFalse)        {          if (IsBlobSeekable(image) == MagickFalse)            {              /*                A seekable stream is required by the encoder.              */              write_info->adjoin=MagickTrue;              (void) CopyMagickString(write_info->filename,image->filename,                MagickPathExtent);              (void) AcquireUniqueFilename(image->filename);              temporary=MagickTrue;            }          (void) CloseBlob(image);        }    }  if ((magick_info != (const MagickInfo *) NULL) &&      (GetImageEncoder(magick_info) != (EncodeImageHandler *) NULL))    {      /*        Call appropriate image writer based on image type.      */      if (GetMagickEncoderThreadSupport(magick_info) == MagickFalse)        LockSemaphoreInfo(magick_info->semaphore);      status=GetImageEncoder(magick_info)(write_info,image,exception);      if (GetMagickEncoderThreadSupport(magick_info) == MagickFalse)        UnlockSemaphoreInfo(magick_info->semaphore);    }  else    {      delegate_info=GetDelegateInfo((char *) NULL,write_info->magick,exception);      if (delegate_info != (DelegateInfo *) NULL)        {          /*            Process the image with delegate.          */          *write_info->filename='/0';          if (GetDelegateThreadSupport(delegate_info) == MagickFalse)            LockSemaphoreInfo(delegate_info->semaphore);          status=InvokeDelegate(write_info,image,(char *) NULL,            write_info->magick,exception);          if (GetDelegateThreadSupport(delegate_info) == MagickFalse)            UnlockSemaphoreInfo(delegate_info->semaphore);          (void) CopyMagickString(image->filename,filename,MagickPathExtent);        }      else
开发者ID:278443820,项目名称:ImageMagick,代码行数:67,


示例21: WriteYCBCRImage

//.........这里部分代码省略.........            status=SetImageProgress(image,SaveImageTag,5,5);            if (status == MagickFalse)              break;          }        break;      }      case PartitionInterlace:      {        /*          Partition interlacing:  YYYYYY..., CbCbCbCbCbCb..., CrCrCrCrCrCr...        */        AppendImageFormat("Y",image->filename);        status=OpenBlob(image_info,image,scene == 0 ? WriteBinaryBlobMode :          AppendBinaryBlobMode,&image->exception);        if (status == MagickFalse)          return(status);        for (y=0; y < (ssize_t) image->rows; y++)        {          p=GetVirtualPixels(image,0,y,image->columns,1,&image->exception);          if (p == (const PixelPacket *) NULL)            break;          length=ExportQuantumPixels(image,(const CacheView *) NULL,quantum_info,            RedQuantum,pixels,&image->exception);          count=WriteBlob(image,length,pixels);          if (count != (ssize_t) length)            break;        }        if (image->previous == (Image *) NULL)          {            status=SetImageProgress(image,SaveImageTag,1,5);            if (status == MagickFalse)              break;          }        (void) CloseBlob(image);        AppendImageFormat("Cb",image->filename);        status=OpenBlob(image_info,image,scene == 0 ? WriteBinaryBlobMode :          AppendBinaryBlobMode,&image->exception);        if (status == MagickFalse)          return(status);        for (y=0; y < (ssize_t) image->rows; y++)        {          p=GetVirtualPixels(image,0,y,image->columns,1,&image->exception);          if (p == (const PixelPacket *) NULL)            break;          length=ExportQuantumPixels(image,(const CacheView *) NULL,quantum_info,            GreenQuantum,pixels,&image->exception);          count=WriteBlob(image,length,pixels);          if (count != (ssize_t) length)            break;        }        if (image->previous == (Image *) NULL)          {            status=SetImageProgress(image,SaveImageTag,2,5);            if (status == MagickFalse)              break;          }        (void) CloseBlob(image);        AppendImageFormat("Cr",image->filename);        status=OpenBlob(image_info,image,scene == 0 ? WriteBinaryBlobMode :          AppendBinaryBlobMode,&image->exception);        if (status == MagickFalse)          return(status);        for (y=0; y < (ssize_t) image->rows; y++)        {          p=GetVirtualPixels(image,0,y,image->columns,1,&image->exception);          if (p == (const PixelPacket *) NULL)
开发者ID:0xPr0xy,项目名称:ImageMagick,代码行数:67,


示例22: ReadFAXImage

/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%                                                                             %%                                                                             %%                                                                             %%   R e a d F A X I m a g e                                                   %%                                                                             %%                                                                             %%                                                                             %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  ReadFAXImage() reads a Group 3 FAX 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 ReadFAXImage method is:%%      Image *ReadFAXImage(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 *ReadFAXImage(const ImageInfo *image_info,ExceptionInfo *exception){  Image    *image;  MagickBooleanType    status;  /*    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 image structure.  */  image->storage_class=PseudoClass;  if (image->columns == 0)    image->columns=2592;  if (image->rows == 0)    image->rows=3508;  image->depth=8;  if (AcquireImageColormap(image,2,exception) == MagickFalse)    ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");  /*    Monochrome colormap.  */  image->colormap[0].red=QuantumRange;  image->colormap[0].green=QuantumRange;  image->colormap[0].blue=QuantumRange;  image->colormap[1].red=(Quantum) 0;  image->colormap[1].green=(Quantum) 0;  image->colormap[1].blue=(Quantum) 0;  if (image_info->ping != MagickFalse)    {      (void) CloseBlob(image);      return(GetFirstImageInList(image));    }  status=SetImageExtent(image,image->columns,image->rows,exception);  if (status == MagickFalse)    return(DestroyImageList(image));  status=HuffmanDecodeImage(image,exception);  if (status == MagickFalse)    ThrowReaderException(CorruptImageError,"UnableToReadImageData");  if (EOFBlob(image) != MagickFalse)    ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile",      image->filename);  (void) CloseBlob(image);  return(GetFirstImageInList(image));}
开发者ID:riingo,项目名称:ImageMagick,代码行数:88,


示例23: CloseBlob

SQLiteBlob::~SQLiteBlob(){	if(mBlobHandle != 0)		CloseBlob();}
开发者ID:Loksim3D,项目名称:loksim3d-source,代码行数:5,


示例24: ReadEPTImage

//.........这里部分代码省略.........%%  A description of each parameter follows:%%    o image_info: the image info.%%    o exception: return any errors or warnings in this structure.%*/static Image *ReadEPTImage(const ImageInfo *image_info,ExceptionInfo *exception){  EPTInfo    ept_info;  Image    *image;  ImageInfo    *read_info;  MagickBooleanType    status;  MagickOffsetType    offset;  ssize_t    count;  /*    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,exception);  status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception);  if (status == MagickFalse)    {      image=DestroyImageList(image);      return((Image *) NULL);    }  ept_info.magick=ReadBlobLSBLong(image);  if (ept_info.magick != 0xc6d3d0c5ul)    ThrowReaderException(CorruptImageError,"ImproperImageHeader");  ept_info.postscript_offset=(MagickOffsetType) ReadBlobLSBLong(image);  ept_info.postscript_length=ReadBlobLSBLong(image);  (void) ReadBlobLSBLong(image);  (void) ReadBlobLSBLong(image);  ept_info.tiff_offset=(MagickOffsetType) ReadBlobLSBLong(image);  ept_info.tiff_length=ReadBlobLSBLong(image);  (void) ReadBlobLSBShort(image);  ept_info.postscript=(unsigned char *) AcquireQuantumMemory(    ept_info.postscript_length+1,sizeof(*ept_info.postscript));  if (ept_info.postscript == (unsigned char *) NULL)    ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");  (void) ResetMagickMemory(ept_info.postscript,0,(ept_info.postscript_length+1)*    sizeof(*ept_info.postscript));  ept_info.tiff=(unsigned char *) AcquireQuantumMemory(ept_info.tiff_length+1,    sizeof(*ept_info.tiff));  if (ept_info.tiff == (unsigned char *) NULL)    ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");  (void) ResetMagickMemory(ept_info.tiff,0,(ept_info.tiff_length+1)*    sizeof(*ept_info.tiff));  offset=SeekBlob(image,ept_info.tiff_offset,SEEK_SET);  if (offset < 0)    ThrowReaderException(CorruptImageError,"ImproperImageHeader");  count=ReadBlob(image,ept_info.tiff_length,ept_info.tiff);  if (count != (ssize_t) (ept_info.tiff_length))    (void) ThrowMagickException(exception,GetMagickModule(),CorruptImageWarning,      "InsufficientImageDataInFile","`%s'",image->filename);  offset=SeekBlob(image,ept_info.postscript_offset,SEEK_SET);  if (offset < 0)    ThrowReaderException(CorruptImageError,"ImproperImageHeader");  count=ReadBlob(image,ept_info.postscript_length,ept_info.postscript);  if (count != (ssize_t) (ept_info.postscript_length))    (void) ThrowMagickException(exception,GetMagickModule(),CorruptImageWarning,      "InsufficientImageDataInFile","`%s'",image->filename);  (void) CloseBlob(image);  image=DestroyImage(image);  read_info=CloneImageInfo(image_info);  (void) CopyMagickString(read_info->magick,"EPS",MaxTextExtent);  image=BlobToImage(read_info,ept_info.postscript,ept_info.postscript_length,    exception);  if (image == (Image *) NULL)    {      (void) CopyMagickString(read_info->magick,"TIFF",MaxTextExtent);      image=BlobToImage(read_info,ept_info.tiff,ept_info.tiff_length,exception);    }  read_info=DestroyImageInfo(read_info);  if (image != (Image *) NULL)    (void) CopyMagickString(image->filename,image_info->filename,MaxTextExtent);  ept_info.tiff=(unsigned char *) RelinquishMagickMemory(ept_info.tiff);  ept_info.postscript=(unsigned char *) RelinquishMagickMemory(    ept_info.postscript);  return(image);}
开发者ID:ChaseReid,项目名称:ImageMagick,代码行数:101,


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


示例26: WriteEPTImage

//.........这里部分代码省略.........  EPTInfo    ept_info;  Image    *write_image;  ImageInfo    *write_info;  MagickBooleanType    status;  /*    Write EPT image.  */  assert(image_info != (const ImageInfo *) NULL);  assert(image_info->signature == MagickSignature);  assert(image != (Image *) NULL);  assert(image->signature == MagickSignature);  if (image->debug != MagickFalse)    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);  assert(exception != (ExceptionInfo *) NULL);  assert(exception->signature == MagickSignature);  status=OpenBlob(image_info,image,WriteBinaryBlobMode,exception);  if (status == MagickFalse)    return(status);  write_image=CloneImage(image,0,0,MagickTrue,exception);  if (write_image == (Image *) NULL)    return(MagickFalse);  write_info=CloneImageInfo(image_info);  (void) CopyMagickString(write_info->magick,"EPS",MaxTextExtent);  if (LocaleCompare(image_info->magick,"EPT2") == 0)    (void) CopyMagickString(write_info->magick,"EPS2",MaxTextExtent);  if (LocaleCompare(image_info->magick,"EPT3") == 0)    (void) CopyMagickString(write_info->magick,"EPS3",MaxTextExtent);  (void) ResetMagickMemory(&ept_info,0,sizeof(ept_info));  ept_info.magick=0xc6d3d0c5ul;  ept_info.postscript=(unsigned char *) ImageToBlob(write_info,write_image,    &ept_info.postscript_length,exception);  write_image=DestroyImage(write_image);  write_info=DestroyImageInfo(write_info);  if (ept_info.postscript == (void *) NULL)    return(MagickFalse);  write_image=CloneImage(image,0,0,MagickTrue,exception);  if (write_image == (Image *) NULL)    return(MagickFalse);  write_info=CloneImageInfo(image_info);  (void) CopyMagickString(write_info->magick,"TIFF",MaxTextExtent);  (void) FormatLocaleString(filename,MaxTextExtent,"tiff:%s",    write_info->filename);   (void) CopyMagickString(write_info->filename,filename,MaxTextExtent);  (void) TransformImage(&write_image,(char *) NULL,"512x512>",exception);  if ((write_image->storage_class == DirectClass) ||      (write_image->colors > 256))    {      QuantizeInfo        quantize_info;      /*        EPT preview requires that the image is colormapped.      */      GetQuantizeInfo(&quantize_info);      quantize_info.dither=IsPaletteImage(write_image,exception) == MagickFalse        ? MagickTrue : MagickFalse;      (void) QuantizeImage(&quantize_info,write_image,exception);    }  write_info->compression=NoCompression;  ept_info.tiff=(unsigned char *) ImageToBlob(write_info,write_image,    &ept_info.tiff_length,exception);  write_image=DestroyImage(write_image);  write_info=DestroyImageInfo(write_info);  if (ept_info.tiff == (void *) NULL)    {      ept_info.postscript=(unsigned char *) RelinquishMagickMemory(        ept_info.postscript);      return(MagickFalse);    }  /*    Write EPT image.  */  (void) WriteBlobLSBLong(image,(unsigned int) ept_info.magick);  (void) WriteBlobLSBLong(image,30);  (void) WriteBlobLSBLong(image,(unsigned int) ept_info.postscript_length);  (void) WriteBlobLSBLong(image,0);  (void) WriteBlobLSBLong(image,0);  (void) WriteBlobLSBLong(image,(unsigned int) ept_info.postscript_length+30);  (void) WriteBlobLSBLong(image,(unsigned int) ept_info.tiff_length);  (void) WriteBlobLSBShort(image,0xffff);  (void) WriteBlob(image,ept_info.postscript_length,ept_info.postscript);  (void) WriteBlob(image,ept_info.tiff_length,ept_info.tiff);  /*    Relinquish resources.  */  ept_info.postscript=(unsigned char *) RelinquishMagickMemory(    ept_info.postscript);  ept_info.tiff=(unsigned char *) RelinquishMagickMemory(ept_info.tiff);  (void) CloseBlob(image);  return(MagickTrue);}
开发者ID:ChaseReid,项目名称:ImageMagick,代码行数:101,


示例27: WriteWBMPImage

static MagickBooleanType WriteWBMPImage(const ImageInfo *image_info,  Image *image,ExceptionInfo *exception){  MagickBooleanType    status;  register const Quantum    *p;  register ssize_t    x;  ssize_t    y;  unsigned char    bit,    byte;  /*    Open output image file.  */  assert(image_info != (const ImageInfo *) NULL);  assert(image_info->signature == MagickSignature);  assert(image != (Image *) NULL);  assert(image->signature == MagickSignature);  if (image->debug != MagickFalse)    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);  assert(exception != (ExceptionInfo *) NULL);  assert(exception->signature == MagickSignature);  status=OpenBlob(image_info,image,WriteBinaryBlobMode,exception);  if (status == MagickFalse)    return(status);  if (IssRGBCompatibleColorspace(image->colorspace) == MagickFalse)    (void) TransformImageColorspace(image,sRGBColorspace,exception);  /*    Convert image to a bi-level image.  */  (void) SetImageType(image,BilevelType,exception);  (void) WriteBlobMSBShort(image,0);  WBMPWriteInteger(image,image->columns);  WBMPWriteInteger(image,image->rows);  for (y=0; y < (ssize_t) image->rows; y++)  {    p=GetVirtualPixels(image,0,y,image->columns,1,exception);    if (p == (const Quantum *) NULL)      break;    bit=0;    byte=0;    for (x=0; x < (ssize_t) image->columns; x++)    {      if (GetPixelLuma(image,p) >= (QuantumRange/2.0))        byte|=0x1 << (7-bit);      bit++;      if (bit == 8)        {          (void) WriteBlobByte(image,byte);          bit=0;          byte=0;        }      p+=GetPixelChannels(image);    }    if (bit != 0)      (void) WriteBlobByte(image,byte);    status=SetImageProgress(image,SaveImageTag,(MagickOffsetType) y,      image->rows);    if (status == MagickFalse)      break;  }  (void) CloseBlob(image);  return(MagickTrue);}
开发者ID:Distrotech,项目名称:ImageMagick,代码行数:72,


示例28: WriteMTVImage

//.........这里部分代码省略.........%%      MagickBooleanType WriteMTVImage(const ImageInfo *image_info,Image *image)%%  A description of each parameter follows.%%    o image_info: the image info.%%    o image:  The image.%*/static MagickBooleanType WriteMTVImage(const ImageInfo *image_info,Image *image){  char    buffer[MaxTextExtent];  long    y;  MagickBooleanType    status;  MagickOffsetType    scene;  register const PixelPacket    *p;  register long    x;  register unsigned char    *q;  unsigned char    *pixels;  /*    Open output image file.  */  assert(image_info != (const ImageInfo *) NULL);  assert(image_info->signature == MagickSignature);  assert(image != (Image *) NULL);  assert(image->signature == MagickSignature);  if (image->debug != MagickFalse)    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);  status=OpenBlob(image_info,image,WriteBinaryBlobMode,&image->exception);  if (status == MagickFalse)    return(status);  scene=0;  do  {    /*      Allocate memory for pixels.    */    if (image->colorspace != RGBColorspace)      (void) TransformImageColorspace(image,RGBColorspace);    pixels=(unsigned char *) AcquireQuantumMemory((size_t) image->columns,      3UL*sizeof(*pixels));    if (pixels == (unsigned char *) NULL)      ThrowWriterException(ResourceLimitError,"MemoryAllocationFailed");    /*      Initialize raster file header.    */    (void) FormatMagickString(buffer,MaxTextExtent,"%lu %lu/n",      image->columns,image->rows);    (void) WriteBlobString(image,buffer);    for (y=0; y < (long) image->rows; y++)    {      p=GetVirtualPixels(image,0,y,image->columns,1,&image->exception);      if (p == (const PixelPacket *) NULL)        break;      q=pixels;      for (x=0; x < (long) image->columns; x++)      {        *q++=ScaleQuantumToChar(p->red);        *q++=ScaleQuantumToChar(p->green);        *q++=ScaleQuantumToChar(p->blue);        p++;      }      (void) WriteBlob(image,(size_t) (q-pixels),pixels);      if (image->previous == (Image *) NULL)        {          status=SetImageProgress(image,SaveImageTag,y,image->rows);          if (status == MagickFalse)            break;        }    }    pixels=(unsigned char *) RelinquishMagickMemory(pixels);    if (GetNextImageInList(image) == (Image *) NULL)      break;    image=SyncNextImageInList(image);    status=SetImageProgress(image,SaveImagesTag,scene,      GetImageListLength(image));    if (status == MagickFalse)      break;    scene++;  } while (image_info->adjoin != MagickFalse);  (void) CloseBlob(image);  return(MagickTrue);}
开发者ID:0xPr0xy,项目名称:ImageMagick,代码行数:101,


示例29: WriteSGIImage

//.........这里部分代码省略.........                q=(unsigned char *) pixels;                q+=y*(4*iris_info.columns)+4*x+z;                (void) WriteBlobByte(image,*q);              }            else              for (x=0; x < (ssize_t) iris_info.columns; x++)              {                register unsigned short                  *q;                q=(unsigned short *) pixels;                q+=y*(4*iris_info.columns)+4*x+z;                (void) WriteBlobMSBShort(image,*q);              }          }        }        break;      }      default:      {        MemoryInfo          *packet_info;        size_t          length,          number_packets,          *runlength;        ssize_t          offset,          *offsets;        /*          Convert SGI uncompressed pixels.        */        offsets=(ssize_t *) AcquireQuantumMemory(iris_info.rows*iris_info.depth,          sizeof(*offsets));        runlength=(size_t *) AcquireQuantumMemory(iris_info.rows,          iris_info.depth*sizeof(*runlength));        packet_info=AcquireVirtualMemory((2*(size_t) iris_info.columns+10)*          image->rows,4*sizeof(*packets));        if ((offsets == (ssize_t *) NULL) ||            (runlength == (size_t *) NULL) ||            (packet_info == (MemoryInfo *) NULL))          {            if (offsets != (ssize_t *) NULL)              offsets=(ssize_t *) RelinquishMagickMemory(offsets);            if (runlength != (size_t *) NULL)              runlength=(size_t *) RelinquishMagickMemory(runlength);            if (packet_info != (MemoryInfo *) NULL)              packet_info=RelinquishVirtualMemory(packet_info);            ThrowWriterException(ResourceLimitError,"MemoryAllocationFailed");          }        packets=(unsigned char *) GetVirtualMemoryBlob(packet_info);        offset=512+4*2*((ssize_t) iris_info.rows*iris_info.depth);        number_packets=0;        q=pixels;        for (y=0; y < (ssize_t) iris_info.rows; y++)        {          for (z=0; z < (ssize_t) iris_info.depth; z++)          {            length=SGIEncode(q+z,(size_t) iris_info.columns,packets+              number_packets);            number_packets+=length;            offsets[y+z*iris_info.rows]=offset;            runlength[y+z*iris_info.rows]=(size_t) length;            offset+=(ssize_t) length;          }          q+=(iris_info.columns*4);        }        /*          Write out line start and length tables and runlength-encoded pixels.        */        for (i=0; i < (ssize_t) (iris_info.rows*iris_info.depth); i++)          (void) WriteBlobMSBLong(image,(unsigned int) offsets[i]);        for (i=0; i < (ssize_t) (iris_info.rows*iris_info.depth); i++)          (void) WriteBlobMSBLong(image,(unsigned int) runlength[i]);        (void) WriteBlob(image,number_packets,packets);        /*          Relinquish resources.        */        offsets=(ssize_t *) RelinquishMagickMemory(offsets);        runlength=(size_t *) RelinquishMagickMemory(runlength);        packet_info=RelinquishVirtualMemory(packet_info);        break;      }    }    pixel_info=RelinquishVirtualMemory(pixel_info);    if (GetNextImageInList(image) == (Image *) NULL)      break;    image=SyncNextImageInList(image);    status=SetImageProgress(image,SaveImagesTag,scene++,      GetImageListLength(image));    if (status == MagickFalse)      break;  } while (image_info->adjoin != MagickFalse);  (void) CloseBlob(image);  return(MagickTrue);}
开发者ID:UIKit0,项目名称:YoyaMagick,代码行数:101,


示例30: WriteRAWImage

//.........这里部分代码省略.........    {      quantum_type=CyanQuantum;      if (image->colorspace == CMYKColorspace)        break;      ThrowWriterException(ImageError,"ColorSeparatedImageRequired");    }    case 'g':    case 'G':    {      quantum_type=GreenQuantum;      break;    }    case 'I':    case 'i':    {      quantum_type=IndexQuantum;      break;    }    case 'K':    case 'k':    {      quantum_type=BlackQuantum;      if (image->colorspace == CMYKColorspace)        break;      ThrowWriterException(ImageError,"ColorSeparatedImageRequired");    }    case 'M':    case 'm':    {      quantum_type=MagentaQuantum;      if (image->colorspace == CMYKColorspace)        break;      ThrowWriterException(ImageError,"ColorSeparatedImageRequired");    }    case 'o':    case 'O':    {      quantum_type=OpacityQuantum;      break;    }    case 'R':    case 'r':    {      quantum_type=RedQuantum;      break;    }    case 'Y':    case 'y':    {      quantum_type=YellowQuantum;      if (image->colorspace == CMYKColorspace)        break;      ThrowWriterException(ImageError,"ColorSeparatedImageRequired");    }    default:    {      quantum_type=GrayQuantum;      break;    }  }  scene=0;  do  {    /*      Convert image to RAW raster pixels.    */    quantum_info=AcquireQuantumInfo(image_info,image);    if (quantum_info == (QuantumInfo *) NULL)      ThrowWriterException(ResourceLimitError,"MemoryAllocationFailed");    pixels=GetQuantumPixels(quantum_info);    for (y=0; y < (ssize_t) image->rows; y++)    {      p=GetVirtualPixels(image,0,y,image->columns,1,&image->exception);      if (p == (const PixelPacket *) NULL)        break;      length=ExportQuantumPixels(image,(const CacheView *) NULL,quantum_info,        quantum_type,pixels,&image->exception);      count=WriteBlob(image,length,pixels);      if (count != (ssize_t) length)        break;      if (image->previous == (Image *) NULL)        {          status=SetImageProgress(image,SaveImageTag,(MagickOffsetType) y,            image->rows);          if (status == MagickFalse)            break;        }    }    quantum_info=DestroyQuantumInfo(quantum_info);    if (GetNextImageInList(image) == (Image *) NULL)      break;    image=SyncNextImageInList(image);    status=SetImageProgress(image,SaveImagesTag,scene++,      GetImageListLength(image));    if (status == MagickFalse)      break;  } while (image_info->adjoin != MagickFalse);  (void) CloseBlob(image);  return(MagickTrue);}
开发者ID:divyasnair123,项目名称:vegetable_store,代码行数:101,



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


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