⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mapply.c

📁 [Game.Programming].Academic - Graphics Gems (6 books source code)
💻 C
字号:
/* mapply.c *//* * maps an 8-bit image into a 24-bit image, * using color map in a user-specified file * * color maps may be generated using ran_ramp *//* Ken Musgrave *//* June 1986 */#include <stdio.h>#include <math.h>#include "types.h"char           *image_file = "img";int             r, g, b;unsigned char   eight_bit[FB_SIZE], twenty_four_bit[FB_SIZE][3], cmap[256][3];FILE           *imfile, *cmapfile, *outfile, *fopen();main(argc, argv)int             argc;char           *argv[];{	int             i, x, y;		/* get command-line args */	if (argc != 3) {		fprintf(stderr, "usage: %s infile cmap_file\n", argv[0]);		exit(0);	}	if ((imfile = fopen(argv[1], "r")) == NULL) {		fprintf(stderr, "Error: cannot open file %s\n", argv[1]);		exit(-1);	}	if ((cmapfile = fopen(argv[2], "r")) == NULL) {		fprintf(stderr, "Error: cannot open file %s\n", argv[2]);		exit(-1);	}	if ((outfile = fopen(image_file, "w")) == NULL) {		fprintf(stderr, "Error: cannot open file %s\n", image_file);		exit(-1);	}	printf("%s: mapping \"%s\" to \"%s\" using map in \"%s\"\n", 			argv[0], argv[1], image_file, argv[2]);	fscanf(cmapfile, "%d %d\n", &r, &g);	for (i = 0; i < 256; i++) {		fscanf(cmapfile, "%d %d %d\n", &r, &g, &b);		cmap[i][0] = (unsigned char) r;		cmap[i][1] = (unsigned char) g;		cmap[i][2] = (unsigned char) b;	}	cmap[0][0] = cmap[1][0];	cmap[0][1] = cmap[1][1];	cmap[0][2] = cmap[1][2];	cmap[255][0] = cmap[254][0];	cmap[255][1] = cmap[254][1];	cmap[255][2] = cmap[254][2];	for (y = 0; y < FB_SIZE; y++) {		fread(eight_bit, 1, FB_SIZE, imfile);		for (x = 0; x < FB_SIZE; x++) {			if (eight_bit[x]) {				twenty_four_bit[x][0] = cmap[eight_bit[x]][0];				twenty_four_bit[x][1] = cmap[eight_bit[x]][1];				twenty_four_bit[x][2] = cmap[eight_bit[x]][2];			} else {				twenty_four_bit[x][0] = 0;				twenty_four_bit[x][1] = 0;				twenty_four_bit[x][2] = 0;			}		}		fwrite(twenty_four_bit, 3, FB_SIZE, outfile);	}} /* main() */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -