1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
   | void filtre::Create_Save_BMP()
{
 
	std::ifstream fichier("./filtre1.txt", std::ios::in);
 
	 char caractere;
	int c=0,i=0;
    int x=0;
    int iWidth = 256;
    int iHeight = 256;
    HANDLE file;
    BITMAPFILEHEADER fileHeader;
    BITMAPINFOHEADER fileInfo;
    RGBTRIPLE image;
    DWORD write = 0;
 
    file = CreateFile("examplea.bmp",GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
    fileHeader.bfType = 19778;
    fileHeader.bfSize = sizeof(fileHeader.bfOffBits) + sizeof(RGBTRIPLE);
    fileHeader.bfReserved1 = 0;
    fileHeader.bfReserved2 = 0;
    fileHeader.bfOffBits = sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER);
 
    fileInfo.biSize = sizeof(BITMAPINFOHEADER);
    fileInfo.biWidth = iWidth;
    fileInfo.biHeight = iHeight;
    fileInfo.biPlanes = 1;
    fileInfo.biBitCount = 24;
    fileInfo.biCompression = BI_RGB;
    fileInfo.biSizeImage = 0;
    fileInfo.biXPelsPerMeter = 0;
    fileInfo.biYPelsPerMeter = 0;
    fileInfo.biClrImportant = 0;
    fileInfo.biClrUsed = 0;
 
    WriteFile(file,&fileHeader,sizeof(fileHeader),&write,NULL);
    WriteFile(file,&fileInfo,sizeof(fileInfo),&write,NULL);
 
 
    while((i < (iWidth*iHeight))&&(fichier.get(caractere)))
    {
 
        if(caractere=='0')
           {
			x=254;
			}
        else 
		{
			x=4;
		}
        image.rgbtBlue = x-1;
        image.rgbtGreen = x-1;
        image.rgbtRed = x-1;
        WriteFile(file, &image, sizeof(RGBTRIPLE), &write, NULL);
		i++;
 
    }
    CloseHandle(file);
	fichier.close();
 
} | 
Partager