void CRefArgs::AddDefinitions(const string& definitions) { typedef list<string> TDefList; TDefList defs; NStr::Split(definitions, "\n", defs); ITERATE(TDefList, def, defs) { string host, args; if ( NStr::SplitInTwo(*def, " ", host, args) ) { AddDefinitions(host, args); } }
/* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % H u f f m a n 2 D E n c o d e I m a g e % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % Method Huffman2DEncodeImage compresses an image via two-dimensional % Huffman-coding. % % The format of the Huffman2DEncodeImage method is: % % unsigned int Huffman2DEncodeImage(const ImageInfo *image_info, % Image *image) % % A description of each parameter follows: % % o status: Method Huffman2DEncodeImage returns True if all the pixels are % compressed without error, otherwise False. % % o image_info: The image info.. % % o image: The image. % */ static unsigned int Huffman2DEncodeImage(const ImageInfo *image_info, Image *image) { char filename[MaxTextExtent]; Image *huffman_image; ImageInfo *clone_info; long count, j; register long i; TIFF *tiff; uint16 fillorder; unsigned char *buffer; unsigned int status; unsigned long *byte_count, strip_size; /* Write image as CCITTFax4 TIFF image to a temporary file. */ assert(image_info != (ImageInfo *) NULL); assert(image_info->signature == MagickSignature); assert(image != (Image *) NULL); assert(image->signature == MagickSignature); huffman_image=CloneImage(image,0,0,True,&image->exception); if (huffman_image == (Image *) NULL) return(False); (void) SetImageType(huffman_image,BilevelType); if(!AcquireTemporaryFileName(filename)) { DestroyImage(huffman_image); ThrowBinaryException(FileOpenError,UnableToCreateTemporaryFile, filename); } FormatString(huffman_image->filename,"tiff:%s",filename); clone_info=CloneImageInfo(image_info); clone_info->compression=Group4Compression; clone_info->type=BilevelType; (void) AddDefinitions(clone_info,"tiff:fill-order=msb2lsb", &image->exception); status=WriteImage(clone_info,huffman_image); DestroyImageInfo(clone_info); DestroyImage(huffman_image); if (status == False) return(False); tiff=TIFFOpen(filename,"rb"); if (tiff == (TIFF *) NULL) { (void) LiberateTemporaryFile(filename); ThrowBinaryException(FileOpenError,UnableToOpenFile, image_info->filename) }
CRefArgs::CRefArgs(const string& definitions) { AddDefinitions(definitions); }