📄 mach.c
字号:
#include <stdio.h>#include <stdlib.h>#include <memory.h>#include "hdr.h"struct bmphdr *hdr;unsigned char *bitmap;int main(int argc, char *argv[]){ int i, j, k; FILE *fpnew; if (argc != 2) { printf("Usage: %s <file_to>\n", argv[0]); exit(1); } hdr = malloc(sizeof(struct bmphdr)); if (!hdr) exit(1); fpnew = fopen(argv[1], "wb+"); if (!fpnew) { printf("File create error!\n"); exit(1); } bitmap = malloc(768 * 256); k = 0; for (i = 0; i < 256; i++) { for (j = 0; j <= 255; j++) bitmap[k++] = (unsigned char)j; for (j = 0; j <= 255; j++) bitmap[k++] = (unsigned char)j; for (j = 0; j <= 255; j++) bitmap[k++] = (unsigned char)j; } hdr->signature[0] = 'B'; hdr->signature[1] = 'M'; hdr->offset = 54; hdr->hdr_size = 40; hdr->width = 768; hdr->height = 256; hdr->nr_planes = 1; hdr->bits_per_pixel = 8; hdr->compress_type = 0; hdr->data_size = 768 * 256; hdr->resol_hori = 2438; hdr->resol_vert = 2438; hdr->nr_colors = 256; hdr->important_color = 256; k = 0; for (i = 0; i < 256; i++) { hdr->info[k++] = (unsigned char)i; hdr->info[k++] = (unsigned char)i; hdr->info[k++] = (unsigned char)i; hdr->info[k++] = (unsigned char)0; } fwrite(hdr->signature, 2, 1, fpnew); fwrite(&hdr->size, 4, 1, fpnew); fwrite(hdr->reserved, 4, 1, fpnew); fwrite(&hdr->offset, 4, 1, fpnew); fwrite(&hdr->hdr_size, 4, 1, fpnew); fwrite(&hdr->width, 4, 1, fpnew); fwrite(&hdr->height, 4, 1, fpnew); fwrite(&hdr->nr_planes, 2, 1, fpnew); fwrite(&hdr->bits_per_pixel, 2, 1, fpnew); fwrite(&hdr->compress_type, 4, 1, fpnew); fwrite(&hdr->data_size, 4, 1, fpnew); fwrite(&hdr->resol_hori, 4, 1, fpnew); fwrite(&hdr->resol_vert, 4, 1, fpnew); fwrite(&hdr->nr_colors, 4, 1, fpnew); fwrite(&hdr->important_color, 4, 1, fpnew); fwrite(hdr->info, 1024, 1, fpnew); fwrite(bitmap, 768 * 256, 1, fpnew); fclose(fpnew); free(hdr); free(bitmap); return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -