**
** \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 char bfType[2];
unsigned long biClrImportant;
};
+}
/* === M E T H O D S ======================================================= */
#ifdef WORDS_BIGENDIAN
rowspan=4*((w*(channels(pf)*8)+31)/32);
if(multi_image)
{
- String
- newfilename(filename),
- ext(find(filename.begin(),filename.end(),'.'),filename.end());
- newfilename.erase(find(newfilename.begin(),newfilename.end(),'.'),newfilename.end());
-
- newfilename+=etl::strprintf("%04d",imagecount)+ext;
- file=fopen(newfilename.c_str(),"wb");
+ String newfilename(filename_sans_extension(filename) +
+ etl::strprintf(".%04d",imagecount) +
+ filename_extension(filename));
+ 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"));
}
Color *
-bmp::start_scanline(int scanline)
+bmp::start_scanline(int /*scanline*/)
{
return color_buffer;
}