I am having difficult perfecting my new headers for resize. Can someone please tell me what I am doing wrong and how to go about fixing it? Here's my header:
// read infile's BITMAPINFOHEADER
BITMAPINFOHEADER bi;
fread(&bi, sizeof(BITMAPINFOHEADER), 1, inptr);
// read infile's BITMAPFILEHEADER
BITMAPFILEHEADER bf;
fread(&bf, sizeof(BITMAPFILEHEADER), 1, inptr);
// ensure infile is (likely) a 24-bit uncompressed BMP 4.0
//if (bf.bfType != 0x4d42 || bf.bfOffBits != 54 || bi.biSize != 40 ||
// bi.biBitCount != 24 || bi.biCompression != 0)
//{
// fclose(outptr);
// fclose(inptr);
// fprintf(stderr, "Unsupported file format.\n");
// return 4;
//}
// Store original header values
int origbiWidth, origbiHeight, origpadding;
origbiWidth = bi.biWidth;
origbiHeight = bi.biHeight;
origpadding = (4 - (origbiWidth * sizeof(RGBTRIPLE)) % 4) % 4;
// Declare new headers
BITMAPINFOHEADER newbi;
newbi = bi;
BITMAPFILEHEADER newbf;
newbf = bf;
// header redefinition
newbi.biWidth = (bi.biWidth) * n; //error
newbi.biHeight = (bi.biHeight) * n; //error
int newpadding = (4 - (newbi.biWidth * sizeof(RGBTRIPLE)) % 4) % 4;
newbi.biSizeImage = ((sizeof(RGBTRIPLE) * newbi.biWidth) + newpadding) * abs(newbi.biHeight); //error
newbf.bfSize = newbi.biSizeImage + sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER); //error
// write outfile's BITMAPINFOHEADER
fwrite(&newbi, sizeof(BITMAPINFOHEADER), 1, outptr);
// write outfile's BITMAPFILEHEADER
fwrite(&newbf, sizeof(BITMAPFILEHEADER), 1, outptr);