16,777,216色をすべて使ったpng画像を生成する


このエントリーをはてなブックマークに追加

R, G, Bがそれぞれ8ビットの場合、生成可能な色数は(2^8)^3 = 約1678万色。これらすべてを4,096×4,096の正方形に配置するプログラムをお遊びで書いてみた。

void show_all_bgr_colors(){
	cv::Mat img(256*16, 256*16, CV_8UC3);

	for(int b = 0; b < 256; ++b){
		for(int g = 0; g < 256; ++g){
			for(int r = 0; r < 256; ++r){
				int y = (b / 16) * 256 + g;
				int x = (b % 16) * 256 + r;
				img.at<cv::Vec3b>(y, x) = cv::Vec3b(b, g, r);
			}
		}
	}
	cv::imwrite("output\\allcolor.png", img);
}

結果の縮小版はこんな感じ。