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

📄 rgbrgbv.c

📁 这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易于我们学习和理解
💻 C
字号:
#include <u.h>#include <libc.h>#include <draw.h>/* * This version of closest() is now (feb 20, 2001) installed as rgb2cmap in libdraw */intclosest(int cr, int cg, int cb){	int i, r, g, b, sq;	ulong rgb;	int best, bestsq;	best = 0;	bestsq = 0x7FFFFFFF;	for(i=0; i<256; i++){		rgb = cmap2rgb(i);		r = (rgb>>16) & 0xFF;		g = (rgb>>8) & 0xFF;		b = (rgb>>0) & 0xFF;		sq = (r-cr)*(r-cr)+(g-cg)*(g-cg)+(b-cb)*(b-cb);		if(sq < bestsq){			bestsq = sq;			best = i;		}	}	return best;}voidmain(int argc, char *argv[]){	int i, rgb;	int r, g, b;	uchar close[16*16*16];	/* rgbmap */	print("uint rgbmap[256] = {\n");	for(i=0; i<256; i++){		if(i%8 == 0)			print("\t");		rgb = cmap2rgb(i);		r = (rgb>>16) & 0xFF;		g = (rgb>>8) & 0xFF;		b = (rgb>>0) & 0xFF;		print("0x%.6ulX, ", (r<<16) | (g<<8) | b);		if(i%8 == 7)			print("\n");	}	print("};\n\n");	/* closestrgb */	print("uchar closestrgb[16*16*16] = {\n");	for(r=0; r<256; r+=16)	for(g=0; g<256; g+=16)	for(b=0; b<256; b+=16)		close[(b/16)+16*((g/16)+16*(r/16))] = closest(r+8, g+8, b+8);	for(i=0; i<16*16*16; i++){		if(i%16 == 0)			print("\t");		print("%d,", close[i]);		if(i%16 == 15)			print("\n");	}	print("};\n\n");	exits(nil);}

⌨️ 快捷键说明

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