struct TBMPHeader{
//заголовок файла
short Type;
//сигнатура BM 0x4D42
long Size;
//размер файла в байтах 3*H*W+54
long Reserved;
//зарезервировано 0
long OffsetBits;
//смещение изображения от начала файла 54
//информационный заголовок
long SizeH;
//размер заголовка 40 информационного заголовка
long Width;
//ширина изображения
long Height;
//высота изображения
short Planes;
//число плоскостей 1
short BitCount;
//глубина цвета, бит на точку 24
long Compression;
//тип еомпрессии(0 - несжатое изображение)
long SizeImage;
//разиер изображения, байт 3*W*H
long XPelsPerMeter; //горизонтальное разрешение, точка на метр 0
long YPelsPerMeter; //вертикальное разрешение, точка на метр 0
long ColorUsed; //число используемых цветов 0
long ColorImportant;//число основных цветов 0
};
struct TBGR {
unsigned char b;
unsigned char g;
unsigned char r;
};
LoadBMPFile(char *fname){
TBMPHeader BMPHeader;
FILE *f;
if ((f = fopen(fname,"rb")) == NULL){
cout<<"Ошибка открытия файла";
return;
}
fread(&BMPHeader,sizeof(TBMPHeader),1,f);
TBGR *inBGR = new TBGR[BMPHeader.Width]; //массив указателей на слова
while(!feof(f)){
fread(inBGR,3*BMPHeader.Width,1,f);
// Здесь делаете преобразования и тут же записываете в новый файл или используете по своему усмотрению.
}
fclose(f);
}
struct TBMPHeader{
//заголовок файла
short Type; //сигнатура BM 0x4D42
long Size; //размер файла в байтах 3*H*W+54
long Reserved; //зарезервировано 0
long OffsetBits; //смещение изображения от начала файла 54
//информационный заголовок
long SizeH; //размер заголовка 40 информационного заголовка
long Width; //ширина изображения
long Height; //высота изображения
short Planes; //число плоскостей 1
short BitCount; //глубина цвета, бит на точку 24
long Compression; //тип еомпрессии(0 - несжатое изображение)
long SizeImage; //разиер изображения, байт 3*W*H
long XPelsPerMeter; //горизонтальное разрешение, точка на метр 0
long YPelsPerMeter; //вертикальное разрешение, точка на метр 0
long ColorUsed; //число используемых цветов 0
long ColorImportant;//число основных цветов 0
};
LoadBMPFile(char *fname){
TBMPHeader BMPHeader;
FILE *f;
if ((f = fopen(fname,"rb")) == NULL){
cout<<"Ошибка открытия файла";
return;
}
fread(&BMPHeader,sizeof(TBMPHeader),1,f);
TBGR *inBGR = new TBGR[BMPHeader.Width]; //массив указателей на слова
while(!feof(f)){
fread(inBGR,3*BMPHeader.Width,1,f);
// Здесь делаете преобразования и тут же записываете в новый файл или используете по своему усмотрению.
}
fclose(f);
}
Если Вы уже зарегистрированы на Портале - войдите в систему, если Вы еще не регистрировались - пройдите простую процедуру регистрации.