📄 ez.c
字号:
#include <stdio.h>#include <stdlib.h>#include <memory.h>#include "hdr.h"struct bmphdr *hdr;unsigned char *bitmap, *to;char buf[2048];int main(int argc, char *argv[]){ int i, j, k, nr_pixels; FILE *fp, *fpnew; unsigned g; if (argc != 4) { printf("Usage: %s <file_from> <file_to> <threshold>\n", argv[0]); exit(1); } hdr = get_header(argv[1]); if (!hdr) exit(1); fp = fopen(argv[1], "rb"); if (!fp) { printf("File open error!\n"); exit(1); } fseek(fp, hdr->offset, SEEK_SET); nr_pixels = hdr->width * hdr->height; bitmap = malloc(nr_pixels); fread(bitmap, nr_pixels, 1, fp); fclose(fp); k = atoi(argv[3]); to = malloc(nr_pixels); memset(to, 0, nr_pixels); for (i = 0; i < nr_pixels; i++) to[i] = bitmap[i] > (unsigned char)k ? 255 : 0; fpnew = fopen(argv[2], "wb+"); if (!fpnew) { printf("File create error!\n"); exit(1); } 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); if (hdr->offset > 54) fwrite(hdr->info, hdr->offset - 54, 1, fpnew); fwrite(to, nr_pixels, 1, fpnew); fclose(fpnew); free(hdr); free(bitmap); return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -