在VGA上实现灰度显示的程序实例
来源:互联网 发布:js获取手机软键盘高度 编辑:程序博客网 时间:2024/05/19 14:53
在VGA上实现灰度显示的程序实例
在VGA上实现灰度显示的程序实例
#include"stdio.h"
#include"dos.h"
#include<conio.h>
#include<math.h>
#include<math.h>
#include<graphics.h>
unsigned long pre_cale_y2[480];
typedef unsigned char byte;
union REGS reg;
struct SREGS inreg;
typedef struct
{
byte red;
byte grn;
byte blu;
}
rgb;
typedef rgb palette_Register[256];
void set_palette(palette_Register hue)
{
reg.x.ax=0x1012;
segread(&inreg);
inreg.es=inreg.ds;
reg.x.bx=0;
reg.x.cx=256;
reg.x.dx=(int)&hue[0];
int86x(0x10,®,®,&inreg);
}
void init_palette_2(palette_Register color)
{
int i;
for(i=0;i<36;i++)
{
color[i].red=0;
color[i].grn=0;
color[i].blu=(int)(1.8*i+0.5);
}
for(i=36;i<72;i++)
{
color[i].red=0;
color[i].grn=(int)(1.8*(i-36)+0.5);
color[i].blu=0;
}
for(i=72;i<108;i++)
{
color[i].red=0;
color[i].grn=(int)(1.8*(i-72)+0.5);
color[i].blu=(int)(1.8*(i-72)+0.5);
}
for(i=108;i<144;i++)
{
color[i].red=(int)(1.8*(i-108)+0.5);
color[i].grn=0;
color[i].blu=0;
}
for(i=144;i<180;i++)
{
color[i].red=(int)(1.8*(i-144)+0.5);
color[i].grn=0;
color[i].blu=(int)(1.8*(i-144)+0.5);
}
for(i=180;i<216;i++)
{
color[i].red=(int)(1.8*(i-180)+0.5);
color[i].grn=(int)(1.8*(i-180)+0.5);
color[i].blu=0;
}
for(i=216;i<252;i++)
{
color[i].red=(int)(1.8*(i-216)+0.5);
color[i].grn=(int)(1.8*(i-216)+0.5);
color[i].blu=(int)(1.8*(i-216)+0.5);
}
}
void precale()
{
unsigned int j;
for(j=0;j<480;j++)
{
pre_cale_y2[j]=640*j;
}
}
void plot(int x,int y,char color)
{
long L_offset;
int offset,page;
char far *address;
precale();
if((x<640)&&(y<480))
{
L_offset=pre_cale_y2[y]+x;
page=(L_offset>>16);
offset=L_offset&65535;
outportb(0x3c4,0xe);
outportb(0x3c5,(page&0xf)^0x2);
address=(char far *)(0xa0000000L+offset);
*address=color;
}
}
void put_pix(int x,int y,char color,char inten)
{
char col;
col=((35+1)*(color-1)+inten)&255;
plot(x,y,col);
}
main()
{
int i,j;
palette_Register color;
precale();
reg.h.ah=0;
reg.h.al=0x13;
int86(0x10,®,®);
init_palette_2(color);
set_palette(color);
for(i=0;i<300;i++)
for(j=0;j<35;j++)
put_pix(i,j,3,j);
getchar();
closegraph();
}
- 在VGA上实现灰度显示的程序实例
- 在VGA上实现灰度显示的程序实例
- 在PC上显示所需vga库的编译
- s5pv210上实现大分辨率VGA显示的方法
- s5pv210上实现大分辨率VGA显示的方法
- OV7670摄像采集图像在VGA上显示的分析和实现,精确到每个时钟,每行代码。
- VGA显示原理与VGA时序实现
- FPGA的VGA显示
- 在面板上显示文本的程序
- Verilog实现VGA显示控制器
- 数字电路设计之VGA的字母显示的verilog实现
- FPGA上实现VGA接口
- 数字电路设计之VGA显示条形图的verilog实现
- verilog实现的VGA显示自反弹移动小方块
- 微信小程序 实现获取当前位置并在地图上显示
- Fpga的vga显示设计
- 在cocos2d-x2.0上用shader实现灰度图
- 实例3:显示在标题上的进度条
- c++编程要点(转载)
- 拖动图形对象
- 显示当前驱动器号
- IMG,IFRAME的属性参考
- MFC中对窗口贴图
- 在VGA上实现灰度显示的程序实例
- 05/10/29(夜)
- 在光标处开始进行显示
- 数据文件加密算法--换位加密法
- 数据文件加密算法--替代加密法
- ASP上两个防止SQL注入式攻击Function
- flash网游开发日志
- flash中通过XMLSocket监控生产
- 数据文件加密算法—位操作加密法