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

📄 1.cpp

📁 本程序是用VC++6.0编写的绘制类似画图板的的图片
💻 CPP
字号:
#include "stdio.h"
#include "io.h"
#include "windows.h"
#define B 0.8
#define W0 360
#define H0 360


BITMAPFILEHEADER  bitmapfileheader;	//图象头
BITMAPINFOHEADER bitmapinfoheader;	//信息头

FILE		 *fp;		//文件指针
FILE *fpa;
BYTE r[H0][W0],g[H0][W0],b[H0][W0];
double h[H0][W0],s[H0][W0];


void main()
{

    int i,j;
	int rate;

     if((fp=fopen("out.bmp","w"))==NULL) {
		printf("File write error!\n");
		exit(0);
	}                //打开文件


	 if((fpa=fopen("a.txt","w"))==NULL) {
		printf("File write error!\n");
		exit(0);
	}                //打开文件


bitmapfileheader.bfType='B'+'M'*256;
bitmapfileheader.bfSize=388800;
bitmapfileheader.bfReserved1=0;
bitmapfileheader.bfReserved2=0;
bitmapfileheader.bfOffBits=54;

bitmapinfoheader.biSize=40;
bitmapinfoheader.biWidth=360;
bitmapinfoheader.biHeight=341;
bitmapinfoheader.biPlanes=1;
bitmapinfoheader.biBitCount=24;
bitmapinfoheader.biCompression=0;
bitmapinfoheader.biSizeImage=388854;
bitmapinfoheader.biXPelsPerMeter=0;
bitmapinfoheader.biYPelsPerMeter=0;
bitmapinfoheader.biClrUsed=0;
bitmapinfoheader.biClrImportant=0;          //参数赋值



fwrite(&bitmapfileheader,14,1,fp);
fwrite(&bitmapinfoheader,40,1,fp);      //写文件头文件和头信息


for(i=0;i<360;i++)
{
      for(j=0;j<360;j++)
	 {   h[i][j]=j;
	     s[i][j]=i;
	  }
}                                       //图象的HSB值


for(i=0;i<360;i++)
{    
	for(j=0;j<360;j++)
	{  rate=int (h[i][j]/60);
	switch(rate){
    case 0:{  r[i][j]=BYTE (255*B);
		      b[i][j]=BYTE ((1-s[i][j]/360)*r[i][j]);
			  g[i][j]=BYTE (h[i][j]*(r[i][j]-b[i][j])/60+b[i][j]);};break;
	case 1:{  g[i][j]=BYTE (255*B);
              b[i][j]=BYTE ((1-s[i][j]/360)*g[i][j]);
			  r[i][j]=BYTE ((120-h[i][j])*(g[i][j]-b[i][j])/60+b[i][j]);};break;
	case 2:{  g[i][j]=BYTE (255*B);
              r[i][j]=BYTE ((1-s[i][j]/360)*g[i][j]);
			  b[i][j]=BYTE ((h[i][j]-120)*(g[i][j]-r[i][j])/60+r[i][j]);};break;
	case 3:{  b[i][j]=BYTE (255*B);
		      r[i][j]=BYTE ((1-s[i][j]/360)*b[i][j]);
			  g[i][j]=BYTE ((240-h[i][j])*(b[i][j]-r[i][j])/60+r[i][j]);};break;
	case 4:{  b[i][j]=BYTE (255*B);
              g[i][j]=BYTE ((1-s[i][j]/360)*b[i][j]);
			  r[i][j]=BYTE ((h[i][j]-240)*(b[i][j]-g[i][j])/60+g[i][j]);};break;
	case 5:{  r[i][j]=BYTE (255*B);
		      g[i][j]=BYTE ((1-s[i][j]/360)*r[i][j]);
			  b[i][j]=BYTE ((360-h[i][j])*(r[i][j]-g[i][j])/60+g[i][j]);};break;
	}

   

	}
}                                         //HSB转换为RGB值


for(i=0;i<379;i++)
{  for(j=0;j<360;j++)
{  
   fwrite(&b[i][j],1,1,fp);
   fwrite(&g[i][j],1,1,fp);
   fwrite(&r[i][j],1,1,fp);
}

}

for(i=300;i<360;i++)
{  for(j=0;j<200;j++)
    fprintf(fpa," %d",r[i][j]);
    fprintf(fpa,"\n");

}




if(fclose(fp)) {
	printf("Can not close the file!\n");
	exit(0);
}

}

⌨️ 快捷键说明

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