**
** \legal
** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
+** Copyright (c) 2007 Chris Moore
**
** This package is free software; you can redistribute it and/or
** modify it under the terms of the GNU General Public License as
SYNFIG_TARGET_SET_CVS_ID(bmp,"$Id$");
/* === C L A S S E S & S T R U C T S ======================================= */
+namespace synfig {
struct BITMAPFILEHEADER
{
unsigned long biClrImportant;
};
+}
/* === M E T H O D S ======================================================= */
#ifdef WORDS_BIGENDIAN
if(multi_image)
{
String newfilename(filename_sans_extension(filename) +
- etl::strprintf("%04d",imagecount) +
+ etl::strprintf(".%04d",imagecount) +
filename_extension(filename));
- file=fopen(newfilename.c_str(),"wb");
+ file=fopen(newfilename.c_str(),POPEN_BINARY_WRITE_TYPE);
if(callback)callback->task(newfilename+_(" (animated)"));
}
else
{
- file=fopen(filename.c_str(),"wb");
+ file=fopen(filename.c_str(),POPEN_BINARY_WRITE_TYPE);
if(callback)callback->task(filename);
}
return false;
}
- BITMAPFILEHEADER fileheader;
- BITMAPINFOHEADER infoheader;
+ synfig::BITMAPFILEHEADER fileheader;
+ synfig::BITMAPINFOHEADER infoheader;
fileheader.bfType[0]='B';
fileheader.bfType[1]='M';
- fileheader.bfSize=little_endian(sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER)+rowspan*h);
+ fileheader.bfSize=little_endian(sizeof(synfig::BITMAPFILEHEADER)+sizeof(synfig::BITMAPINFOHEADER)+rowspan*h);
fileheader.bfReserved1=0;
fileheader.bfReserved2=0;
- fileheader.bfOffsetBits=little_endian(sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER)-2);
+ fileheader.bfOffsetBits=little_endian(sizeof(synfig::BITMAPFILEHEADER)+sizeof(synfig::BITMAPINFOHEADER)-2);
infoheader.biSize=little_endian(40);
infoheader.biWidth=little_endian(w);
fprintf(file,"BM");
- if(!fwrite(&fileheader.bfSize,sizeof(BITMAPFILEHEADER)-4,1,file))
+ if(!fwrite(&fileheader.bfSize,sizeof(synfig::BITMAPFILEHEADER)-4,1,file))
{
if(callback)callback->error(_("Unable to write file header to file"));
else synfig::error(_("Unable to write file header to file"));
return false;
}
- if(!fwrite(&infoheader,sizeof(BITMAPINFOHEADER),1,file))
+ if(!fwrite(&infoheader,sizeof(synfig::BITMAPINFOHEADER),1,file))
{
if(callback)callback->error(_("Unable to write info header"));
else synfig::error(_("Unable to write info header"));