// read infile's BITMAPFILEHEADER BITMAPFILEHEADER bf; fread(&bf, sizeof(BITMAPFILEHEADER), 1, inptr); // read infile's BITMAPINFOHEADER BITMAPINFOHEADER bi; fread(&bi, sizeof(BITMAPINFOHEADER), 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; } // determine padding for scanlines int padding = (4 - (bi.biWidth * sizeof(RGBTRIPLE)) % 4) % 4; // stores the original biWidth and biHeight in variables int originalbiWidth = bi.biWidth; int originalbiHeight = bi.biHeight; // multiplies the biWidth and biHeight by n bi.biWidth *= n; bi.biHeight *= n; // determines padding for scanlines after they are scaled by a factor of n int outputPadding = (4 - (bi.biWidth * sizeof(RGBTRIPLE)) % 4) % 4; bi.biSizeImage = bi.biWidth * bi.biHeight + outputPadding; bf.bfSize = bi.biSizeImage + sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER); // write outfile's BITMAPFILEHEADER fwrite(&bf, sizeof(BITMAPFILEHEADER), 1, outptr); // write outfile's BITMAPINFOHEADER fwrite(&bi, sizeof(BITMAPINFOHEADER), 1, outptr); After I modified copy.c to update the BITMAPFILEHEADER and BITMAPINFOHEADER of the output of the program, I get a file output, but I cannot open it because of the error, "Invalid or Unsupported Image Format". When I remove the modifications I made below, the file opens. Thanks in advance for helping.