本文整理汇总了C++中FileToString函数的典型用法代码示例。如果您正苦于以下问题:C++ FileToString函数的具体用法?C++ FileToString怎么用?C++ FileToString使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了FileToString函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: FileToString
bool Soy::FileToString(std::string Filename,std::string& String)
{
auto& Stream = std::Debug.LockStream();
auto Result = FileToString( Filename, String, Stream );
std::Debug.UnlockStream( Stream );
return Result;
}
示例2: LoadTypeList
/*
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% %
% %
% L o a d T y p e L i s t s %
% %
% %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% LoadTypeList() loads one or more type configuration files which provides a
% mapping between type attributes and a type name.
%
% The format of the LoadTypeLists method is:
%
% MagickBooleanType LoadTypeLists(const char *filename,
% ExceptionInfo *exception)
%
% A description of each parameter follows:
%
% o filename: the font file name.
%
% o exception: return any errors or warnings in this structure.
%
*/
static MagickBooleanType LoadTypeLists(const char *filename,
ExceptionInfo *exception)
{
#if defined(MAGICKCORE_ZERO_CONFIGURATION_SUPPORT)
return(LoadTypeList(TypeMap,"built-in",0,exception));
#else
char
*font_path,
path[MaxTextExtent];
const StringInfo
*option;
LinkedListInfo
*options;
MagickStatusType
status;
status=MagickFalse;
*path='\0';
options=GetConfigureOptions(filename,exception);
option=(const StringInfo *) GetNextValueInLinkedList(options);
while (option != (const StringInfo *) NULL)
{
(void) CopyMagickString(path,GetStringInfoPath(option),MaxTextExtent);
status&=LoadTypeList((const char *) GetStringInfoDatum(option),
GetStringInfoPath(option),0,exception);
option=(const StringInfo *) GetNextValueInLinkedList(options);
}
options=DestroyConfigureOptions(options);
font_path=GetEnvironmentValue("MAGICK_FONT_PATH");
if (font_path != (char *) NULL)
{
char
*option;
/*
Search MAGICK_FONT_PATH.
*/
(void) FormatLocaleString(path,MaxTextExtent,"%s%s%s",font_path,
DirectorySeparator,filename);
option=FileToString(path,~0UL,exception);
if (option != (void *) NULL)
{
status&=LoadTypeList(option,path,0,exception);
option=DestroyString(option);
}
font_path=DestroyString(font_path);
}
if ((type_list == (SplayTreeInfo *) NULL) ||
(GetNumberOfNodesInSplayTree(type_list) == 0))
status&=LoadTypeList(TypeMap,"built-in",0,exception);
return(status != 0 ? MagickTrue : MagickFalse);
#endif
}
示例3: FileToStringLines
bool Soy::FileToStringLines(std::string Filename,ArrayBridge<std::string>& StringLines,std::ostream& Error)
{
// get file as string then parse
std::string FileContents;
if ( !FileToString( Filename, FileContents, Error ) )
return false;
Soy::SplitStringLines( StringLines, FileContents );
return true;
}
示例4: Sleep
void Resume::ReadVlcResumeFile()
{
Sleep(100); //wait for VLC to write file (TODO: make threaded)
//get username
TCHAR username[UNLEN + 1];
DWORD username_len = UNLEN + 1;
GetUserName(username, &username_len);
RString strTemp;
RString strVlcFile;
//build path to vlc info file
RString strFilePath = _T("C:\\Users\\");
strFilePath += username;
strFilePath += _T("\\AppData\\Roaming\\vlc\\vlc-qt-interface.ini");
//read VLC resume file into str
if (!FileToString(strFilePath, strVlcFile))
return;
if (GetFirstMatch(strVlcFile, _T("list=([^$]*?$)"), &strTemp))
{
strTemp.Replace(_T(" "), _T(""));
RArray<const TCHAR*> moviesTemp = SplitString(strTemp, _T(","), true);
size = moviesTemp.GetSize();
if (size > MAX_SIZE) size = MAX_SIZE;
for(int i=0; i<size; i++)
{
//remove % codes and turn + to space
RString strTempMovie = URLDecode(moviesTemp[i]);
//remove file:/// or file://
if (strTempMovie.Left(8) == _T("file:///"))
strTempMovie = strTempMovie.Right(strTempMovie.GetLength() - 8);
else
strTempMovie = strTempMovie.Right(strTempMovie.GetLength() - 5);
strTempMovie.Replace(_T("/"), _T("\\\\"));
movies[i] = strTempMovie;
}
}
if (GetFirstMatch(strVlcFile, _T("times=([^$]*?$)"), &strTemp))
{
strTemp.Replace(_T(" "), _T(""));
RArray<const TCHAR*> strTimes = SplitString(strTemp, _T(","), true);
for(int i=0; i<strTimes.GetSize(); i++)
times[i] = StringToNumber(strTimes[i])/1000; //milliseconds to seconds
}
UpdateResumeTimes();
}
示例5: ShaderSourceFromFiles
void CShader::ShaderSourceFromFiles(std::list<std::string> pShaderFilePaths)
{
//for each shader file path, add it to the string list
std::list<std::string> fileData;
for (auto i : pShaderFilePaths)
{
fileData.push_back(FileToString(i));
}
//use the integrated support for string lists
ShaderSource(fileData);
}
示例6: LoadShader
///
// Cree un shader object, charge le code source du shader et le compile
//
static GLuint LoadShader(GLenum type, const char *sourceFile)
{
// Preload le fichier de shader
char *shaderSrc = FileToString(sourceFile);
if (shaderSrc == NULL) {
return false;
}
// Cree le shader object
GLuint shader = glCreateShader(type);
if (shader == 0) {
return 0;
}
// Load the shader source
glShaderSource(shader, 1, (const char **)&shaderSrc, NULL);
// Compile le shader
glCompileShader(shader);
// on n'a plus besoin du fichier texte
free(shaderSrc);
// verifie le status de la compilation
GLint compiled;
glGetShaderiv(shader, GL_COMPILE_STATUS, &compiled);
if (!compiled)
{
GLint infoLen = 0;
glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &infoLen);
if (infoLen > 1)
{
char* infoLog = (char *)malloc(sizeof(char) * infoLen);
glGetShaderInfoLog(shader, infoLen, NULL, infoLog);
printf("Error compiling shader:\n%s\n", infoLog);
free(infoLog);
}
// on supprime le shader object car il est inutilisable
glDeleteShader(shader);
return 0;
}
return shader;
}
示例7: LexSource
SourceFile LexSource(const char* file)
{
(void)IsEscapeSequence;
SourceFile result;
result.file = file;
result.source = FileToString(file);
//std::cout << file << '\n' << _sourceCode << '\n';
SourceReader reader;
reader.source = result.source.data();
reader.index = 0;
reader.length = (int)result.source.size();
reader.position = {1, 1};
while (reader.Read() && reader.errorMessage.empty())
{
switch (reader.lastSourceToken.tokenType)
{
case TokenType::StringLiteral:
reader.lastSourceToken.tokenIndex = result.strings.size();
result.strings.push_back(reader.buffer);
break;
case TokenType::CodePointLiteral:
case TokenType::Float32Literal:
case TokenType::Float64Literal:
case TokenType::SignedIntegerLiteral:
case TokenType::UnsignedIntegerLiteral:
reader.lastSourceToken.tokenIndex = result.literals.size();
result.literals.push_back(reader.literal);
break;
default: break;
}
result.sourceTokens.push_back(reader.lastSourceToken);
}
SourceToken finalToken = {};
finalToken.tokenType = TokenType::None;
result.sourceTokens.push_back(finalToken);
if (!reader.errorMessage.empty())
{
std::cout << reader.errorPosition << " error - "
<< reader.errorMessage << '\n';
}
return result;
}
示例8: while
void Shader::ExpandIncludes(const string &path, string &source)
{
size_t pos = source.find("#include");
while(pos != string::npos)
{
const size_t firstQuote = source.find("\"", pos);
const size_t secondQuote = source.find("\"", firstQuote + 1);
const size_t len = secondQuote - firstQuote - 1;
const string includeFile = FileToString(path + source.substr(firstQuote + 1, len));
StringReplace(source, source.substr(pos, secondQuote - pos + 1), includeFile);
pos = source.find("#include");
}
}
示例9: GetFileLine
bool GetFileLine(char* sOut, size_t sOutSize, char* sFile, int iLine) {
bool is_found = false;
int iLen;
char sTemp[20] = { 0 };
char* sData;
iLen = FileToString(sFile, (unsigned char**)(&sData));
if(TextLine(sData, iLen, sTemp, 20, iLine)) {
is_found = true;
sprintf_s(sOut, sOutSize, "%s", sTemp);
}
free(sData);
return is_found;
}
示例10: FileToString
void Wren::executeModule( const std::string& mod ) {
// set global variables for the C-callbacks
boundForeignMethods = &foreignMethods_;
boundForeignClasses = &foreignClasses_;
std::string file = mod;
file += ".wren";
auto source = FileToString( file );
auto res = wrenInterpret( vm_, file.c_str(), source.c_str() );
if ( res == WrenInterpretResult::WREN_RESULT_COMPILE_ERROR ) {
std::cerr << "WREN_RESULT_COMPILE_ERROR in module " << mod << std::endl;
}
if ( res == WrenInterpretResult::WREN_RESULT_RUNTIME_ERROR ) {
std::cerr << "WREN_RESULT_RUNTIME_ERROR in module " << mod << std::endl;
}
boundForeignMethods = nullptr;
boundForeignClasses = nullptr;
}
示例11: LoadTypeList
static MagickBooleanType LoadTypeList(const char *xml,const char *filename,
const unsigned long depth,ExceptionInfo *exception)
{
char
font_path[MaxTextExtent];
const char
*attribute;
TypeInfo
*type_info = (TypeInfo *) NULL;
MagickBooleanType
status;
XMLTreeInfo
*type,
*type_map,
*include;
/*
Load the type map file.
*/
(void) LogMagickEvent(ConfigureEvent,GetMagickModule(),
"Loading type map \"%s\" ...",filename);
if (xml == (const char *) NULL)
return(MagickFalse);
if (type_list == (SplayTreeInfo *) NULL)
{
type_list=NewSplayTree(CompareSplayTreeString,(void *(*)(void *)) NULL,
DestroyTypeNode);
if (type_list == (SplayTreeInfo *) NULL)
{
ThrowFileException(exception,ResourceLimitError,
"MemoryAllocationFailed",filename);
return(MagickFalse);
}
}
type_map=NewXMLTree(xml,exception);
if (type_map == (XMLTreeInfo *) NULL)
return(MagickFalse);
status=MagickTrue;
include=GetXMLTreeChild(type_map,"include");
while (include != (XMLTreeInfo *) NULL)
{
/*
Process include element.
*/
attribute=GetXMLTreeAttribute(include,"file");
if (attribute != (const char *) NULL)
{
if (depth > 200)
(void) ThrowMagickException(exception,GetMagickModule(),
ConfigureError,"IncludeElementNestedTooDeeply","`%s'",attribute);
else
{
char
path[MaxTextExtent],
*xml;
ExceptionInfo
*sans_exception;
GetPathComponent(filename,HeadPath,path);
if (*path != '\0')
(void) ConcatenateMagickString(path,DirectorySeparator,
MaxTextExtent);
(void) ConcatenateMagickString(path,attribute,MaxTextExtent);
sans_exception=AcquireExceptionInfo();
xml=FileToString(path,~0,sans_exception);
sans_exception=DestroyExceptionInfo(sans_exception);
if (xml != (char *) NULL)
{
status=LoadTypeList(xml,path,depth+1,exception);
xml=DestroyString(xml);
}
}
}
include=GetNextXMLTreeTag(include);
}
*font_path='\0';
#if defined(__WINDOWS__)
if (NTGhostscriptFonts(font_path,MaxTextExtent-2))
(void) ConcatenateMagickString(font_path,DirectorySeparator,MaxTextExtent);
#endif
type=GetXMLTreeChild(type_map,"type");
while (type != (XMLTreeInfo *) NULL)
{
/*
Process type element.
*/
type_info=(TypeInfo *) AcquireMagickMemory(sizeof(*type_info));
if (type_info == (TypeInfo *) NULL)
ThrowFatalException(ResourceLimitFatalError,"MemoryAllocationFailed");
(void) ResetMagickMemory(type_info,0,sizeof(*type_info));
type_info->path=ConstantString(filename);
type_info->signature=MagickSignature;
attribute=GetXMLTreeAttribute(type,"encoding");
if (attribute != (const char *) NULL)
type_info->encoding=ConstantString(attribute);
//.........这里部分代码省略.........
示例12: ReadDNGImage
/*
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% %
% %
% R e a d D N G I m a g e %
% %
% %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% ReadDNGImage() reads an binary file in the Digital Negative format 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 ReadDNGImage method is:
%
% Image *ReadDNGImage(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 *ReadDNGImage(const ImageInfo *image_info,ExceptionInfo *exception)
{
ExceptionInfo
*sans_exception;
Image
*image;
ImageInfo
*read_info;
MagickBooleanType
status;
/*
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);
}
(void) CloseBlob(image);
(void) DestroyImageList(image);
/*
Convert DNG to PPM with delegate.
*/
image=AcquireImage(image_info);
read_info=CloneImageInfo(image_info);
(void) InvokeDelegate(read_info,image,"dng:decode",(char *) NULL,exception);
image=DestroyImage(image);
(void) FormatMagickString(read_info->filename,MaxTextExtent,"%s.png",
read_info->unique);
sans_exception=AcquireExceptionInfo();
image=ReadImage(read_info,sans_exception);
sans_exception=DestroyExceptionInfo(sans_exception);
if (image == (Image *) NULL)
{
(void) FormatMagickString(read_info->filename,MaxTextExtent,"%s.ppm",
read_info->unique);
image=ReadImage(read_info,exception);
}
(void) RelinquishUniqueFileResource(read_info->filename);
if (image != (Image *) NULL)
{
char
filename[MaxTextExtent],
*xml;
ExceptionInfo
*sans;
(void) CopyMagickString(image->magick,read_info->magick,MaxTextExtent);
(void) FormatMagickString(filename,MaxTextExtent,"%s.ufraw",
read_info->unique);
sans=AcquireExceptionInfo();
xml=FileToString(filename,MaxTextExtent,sans);
(void) RelinquishUniqueFileResource(filename);
if (xml != (char *) NULL)
{
XMLTreeInfo
*ufraw;
/*
//.........这里部分代码省略.........
示例13: ThrowFatalException
static SplayTreeInfo *AcquireTypeCache(const char *filename,
ExceptionInfo *exception)
{
MagickStatusType
status;
SplayTreeInfo
*type_cache;
type_cache=NewSplayTree(CompareSplayTreeString,(void *(*)(void *)) NULL,
DestroyTypeNode);
if (type_cache == (SplayTreeInfo *) NULL)
ThrowFatalException(ResourceLimitFatalError,"MemoryAllocationFailed");
status=MagickTrue;
#if !defined(MAGICKCORE_ZERO_CONFIGURATION_SUPPORT)
{
char
*font_path,
path[MaxTextExtent];
const StringInfo
*option;
LinkedListInfo
*options;
*path='\0';
options=GetConfigureOptions(filename,exception);
option=(const StringInfo *) GetNextValueInLinkedList(options);
while (option != (const StringInfo *) NULL)
{
(void) CopyMagickString(path,GetStringInfoPath(option),MaxTextExtent);
status&=LoadTypeCache(type_cache,(const char *)
GetStringInfoDatum(option),GetStringInfoPath(option),0,exception);
option=(const StringInfo *) GetNextValueInLinkedList(options);
}
options=DestroyConfigureOptions(options);
font_path=GetEnvironmentValue("MAGICK_FONT_PATH");
if (font_path != (char *) NULL)
{
char
*option;
/*
Search MAGICK_FONT_PATH.
*/
(void) FormatLocaleString(path,MaxTextExtent,"%s%s%s",font_path,
DirectorySeparator,filename);
option=FileToString(path,~0UL,exception);
if (option != (void *) NULL)
{
status&=LoadTypeCache(type_cache,option,path,0,exception);
option=DestroyString(option);
}
font_path=DestroyString(font_path);
}
}
#endif
if (GetNumberOfNodesInSplayTree(type_cache) == 0)
status&=LoadTypeCache(type_cache,TypeMap,"built-in",0,exception);
return(type_cache);
}
示例14: WriteHISTOGRAMImage
//.........这里部分代码省略.........
*/
(void) QueryColorCompliance("#000000",AllCompliance,
&histogram_image->background_color,exception);
(void) SetImageBackgroundColor(histogram_image,exception);
for (x=0; x < (ssize_t) histogram_image->columns; x++)
{
q=GetAuthenticPixels(histogram_image,x,0,1,histogram_image->rows,exception);
if (q == (Quantum *) NULL)
break;
if ((GetPixelRedTraits(image) & UpdatePixelTrait) != 0)
{
y=(ssize_t) ceil(histogram_image->rows-scale*histogram[x].red-0.5);
r=q+y*GetPixelChannels(histogram_image);
for ( ; y < (ssize_t) histogram_image->rows; y++)
{
SetPixelRed(histogram_image,QuantumRange,r);
r+=GetPixelChannels(histogram_image);
}
}
if ((GetPixelGreenTraits(image) & UpdatePixelTrait) != 0)
{
y=(ssize_t) ceil(histogram_image->rows-scale*histogram[x].green-0.5);
r=q+y*GetPixelChannels(histogram_image);
for ( ; y < (ssize_t) histogram_image->rows; y++)
{
SetPixelGreen(histogram_image,QuantumRange,r);
r+=GetPixelChannels(histogram_image);
}
}
if ((GetPixelBlueTraits(image) & UpdatePixelTrait) != 0)
{
y=(ssize_t) ceil(histogram_image->rows-scale*histogram[x].blue-0.5);
r=q+y*GetPixelChannels(histogram_image);
for ( ; y < (ssize_t) histogram_image->rows; y++)
{
SetPixelBlue(histogram_image,QuantumRange,r);
r+=GetPixelChannels(histogram_image);
}
}
if (SyncAuthenticPixels(histogram_image,exception) == MagickFalse)
break;
status=SetImageProgress(image,SaveImageTag,y,histogram_image->rows);
if (status == MagickFalse)
break;
}
histogram=(PixelInfo *) RelinquishMagickMemory(histogram);
option=GetImageOption(image_info,"histogram:unique-colors");
if ((option == (const char *) NULL) || (IsStringTrue(option) != MagickFalse))
{
FILE
*file;
int
unique_file;
/*
Add a unique colors as an image comment.
*/
file=(FILE *) NULL;
unique_file=AcquireUniqueFileResource(filename);
if (unique_file != -1)
file=fdopen(unique_file,"wb");
if ((unique_file != -1) && (file != (FILE *) NULL))
{
char
*property;
(void) GetNumberColors(image,file,exception);
(void) fclose(file);
property=FileToString(filename,~0UL,exception);
if (property != (char *) NULL)
{
(void) SetImageProperty(histogram_image,"comment",property,
exception);
property=DestroyString(property);
}
}
(void) RelinquishUniqueFileResource(filename);
}
/*
Write Histogram image.
*/
(void) CopyMagickString(histogram_image->filename,image_info->filename,
MagickPathExtent);
write_info=CloneImageInfo(image_info);
*write_info->magick='\0';
(void) SetImageInfo(write_info,1,exception);
if ((*write_info->magick == '\0') ||
(LocaleCompare(write_info->magick,"HISTOGRAM") == 0))
(void) FormatLocaleString(histogram_image->filename,MagickPathExtent,
"miff:%s",write_info->filename);
histogram_image->blob=DetachBlob(histogram_image->blob);
histogram_image->blob=CloneBlobInfo(image->blob);
status=WriteImage(write_info,histogram_image,exception);
image->blob=DetachBlob(image->blob);
image->blob=CloneBlobInfo(histogram_image->blob);
histogram_image=DestroyImage(histogram_image);
write_info=DestroyImageInfo(write_info);
return(status);
}
示例15: WriteHISTOGRAMImage
//.........这里部分代码省略.........
maximum=histogram[0].red;
for (x=0; x < (long) histogram_image->columns; x++)
{
if (((channel & RedChannel) != 0) && (maximum < histogram[x].red))
maximum=histogram[x].red;
if (((channel & GreenChannel) != 0) && (maximum < histogram[x].green))
maximum=histogram[x].green;
if (((channel & BlueChannel) != 0) && (maximum < histogram[x].blue))
maximum=histogram[x].blue;
}
scale=(MagickRealType) histogram_image->rows/maximum;
/*
Initialize histogram image.
*/
exception=(&image->exception);
(void) QueryColorDatabase("#000000",&histogram_image->background_color,
&image->exception);
(void) SetImageBackgroundColor(histogram_image);
for (x=0; x < (long) histogram_image->columns; x++)
{
q=GetAuthenticPixels(histogram_image,x,0,1,histogram_image->rows,exception);
if (q == (PixelPacket *) NULL)
break;
if ((channel & RedChannel) != 0)
{
y=(long) (histogram_image->rows-scale*histogram[x].red+0.5);
r=q+y;
for ( ; y < (long) histogram_image->rows; y++)
{
r->red=(Quantum) QuantumRange;
r++;
}
}
if ((channel & GreenChannel) != 0)
{
y=(long) (histogram_image->rows-scale*histogram[x].green+0.5);
r=q+y;
for ( ; y < (long) histogram_image->rows; y++)
{
r->green=(Quantum) QuantumRange;
r++;
}
}
if ((channel & BlueChannel) != 0)
{
y=(long) (histogram_image->rows-scale*histogram[x].blue+0.5);
r=q+y;
for ( ; y < (long) histogram_image->rows; y++)
{
r->blue=(Quantum) QuantumRange;
r++;
}
}
if (SyncAuthenticPixels(histogram_image,exception) == MagickFalse)
break;
status=SetImageProgress(image,SaveImageTag,y,histogram_image->rows);
if (status == MagickFalse)
break;
}
/*
Relinquish resources.
*/
histogram=(MagickPixelPacket *) RelinquishMagickMemory(histogram);
file=(FILE *) NULL;
unique_file=AcquireUniqueFileResource(filename);
if (unique_file != -1)
file=fdopen(unique_file,"wb");
if ((unique_file != -1) && (file != (FILE *) NULL))
{
char
*property;
/*
Add a histogram as an image comment.
*/
(void) GetNumberColors(image,file,&image->exception);
(void) fclose(file);
property=FileToString(filename,~0UL,&image->exception);
if (property != (char *) NULL)
{
(void) SetImageProperty(histogram_image,"comment",property);
property=DestroyString(property);
}
}
(void) RelinquishUniqueFileResource(filename);
/*
Write Histogram image.
*/
(void) CopyMagickString(histogram_image->filename,image_info->filename,
MaxTextExtent);
write_info=CloneImageInfo(image_info);
(void) SetImageInfo(write_info,MagickTrue,&image->exception);
if (LocaleCompare(write_info->magick,"HISTOGRAM") == 0)
(void) FormatMagickString(histogram_image->filename,MaxTextExtent,
"miff:%s",write_info->filename);
status=WriteImage(write_info,histogram_image);
histogram_image=DestroyImage(histogram_image);
write_info=DestroyImageInfo(write_info);
return(status);
}