c语言扫描图片的坐标,tc 如何在指定坐标处 输出bmp图片??
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
/*获取当前SVGA屏幕模式*/
unsigned int get_SVGA_mode()
{
union REGS r;
r.x.ax=0x4f03;
int86(0x10,&r,&r);
return(r.x.bx);
}
/*设置调色板*/
void set_SVGA_palette(unsigned char r[], unsigned char g[], unsigned char b[])
{
int k;
for (k = 0; k < 256; k++) {
outportb(0x03C8,k);
outportb(0x03C9,r[k]>>2);
outportb(0x03C9,g[k]>>2);
outportb(0x03C9,b[k]>>2);
}
}
void main()
{
BITMAPFILEHEADER FileHeader;
BITMAPINFOHEADER bmiHeader;
RGBQUAD bmiColors[256];
unsigned char buffer[1024], r[256], g[256], b[256];
unsigned int width, height, linebytes;
long offset, position;
char page_new=0,page_old=0;
int i,j,k,n,savemode;
FILE *fp;
printf("Input filename:"); /*输入要显示的BMP文件路径*/
gets(buffer);
if((fp=fopen(buffer,"rb"))==NULL) /*判断打开文件是否正确*/
{
printf("Can't open file: %s",buffer);
return;
}
if (fread((char *)&FileHeader, sizeof(FileHeader), 1, fp) != 1) {
printf("Can't read file header !\n"); /* 读文件头 */
return;
}
if (FileHeader.bfType != 0X4D42) { /* BM */
fprintf(stderr, "Not a BMP file !\n");
return;
}
if (fread((char *)&bmiHeader, sizeof(bmiHeader), 1, fp) != 1) {
fprintf(stderr, "Can't read bmiHeader !\n"); /* 读信息头 */
return;
}
if (bmiHeader.biBitCount > 8) { /* 不能显示真彩色图像 */
fprintf(stderr, "Can not display ture color image !\n");
return;
}
if (bmiHeader.biCompression != 0) { /* 不能处理压缩图像 */
fprintf(stderr, "Not non-compressed image !\n");
return;
}
width = (unsigned int)bmiHeader.biWidth;
height = (unsigned int)bmiHeader.biHeight;
linebytes = ((width*(long)bmiHeader.biBitCount+31)/32)*4; /* 每行字节数--4的整数倍 */
if (fread((char *)&bmiColors[0], 4, 256, fp) != 256) { /* 读调色板数据 */
fprintf(stderr, "Can't get palette !\n");
return;
}
savemode=get_SVGA_mode(); /*先保存原来的屏幕模式*/
set_SVGA_mode(0x101); /*硬件无关性初始化屏幕为256色640*480模式*/
COLS=640;ROWS=480;
for (i = 0; i < 256; i++) {
r[i] = bmiColors[i].rgbRed;
g[i] = bmiColors[i].rgbGreen;
b[i] = bmiColors[i].rgbBlue;
}
set_SVGA_palette(r, g, b); /* 设置调色板 */
offset = FileHeader.bfOffBits;
fseek(fp, offset, SEEK_SET); /* 跳到位图数据的起始位置 */
for(j=height-1;j>=0;j--) {
fread(buffer,linebytes,1,fp);
for(i=0,n=0;i
position=j*(long)COLS+i; /*计算要显示点的显存位置*/
page_new=position/65536l; /*计算显示页*/
if(page_new!=page_old) /*当显示页不同时更换页面,提高一定的输出速度*/
{
selectpage(page_new);
page_old=page_new;
}
pokeb(0xa000,position%65536l,buffer[n]); /*写到显存位置*/
}
}
fclose(fp);
bioskey(0);
set_SVGA_mode(savemode); /*恢复屏幕*/
}
c语言扫描图片的坐标,tc 如何在指定坐标处 输出bmp图片??相关推荐
- c语言坐标输出图片,tc 如何在指定坐标处 输出bmp图片??
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 /*获取当前SVGA屏幕模式*/ unsigned int get_SVGA_mode() { union REGS r; r.x.ax=0x4f03; ...
- c语言如何在坐标输出,tc 如何在指定坐标处 输出bmp图片??
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 /*获取当前SVGA屏幕模式*/ unsigned int get_SVGA_mode() { union REGS r; r.x.ax=0x4f03; ...
- OpenCV读取多幅图片,读取系列图片,读取文件夹中指定图像类型的系列图片
读取系列图片通常是将文件夹中的所有文件名保存在txt中,再读取,如链接和链接所示.这是通常的操作方法. 之前写过一篇利用OpenCV读取系列图片的例子,参见链接,但是,实际应用中并不能改变文件名,本文 ...
- bmp文件头_「正点原子FPGA连载」第十九章SD卡读BMP图片LCD显示
1)摘自[正点原子]领航者 ZYNQ 之嵌入式开发指南 2)实验平台:正点原子领航者ZYNQ开发板 3)平台购买地址:https://item.taobao.com/item.htm?&id= ...
- 使用C++实现多张BMP图片转换为YUV动画----附加淡入淡出转场(逐渐变明变暗),及垂直滑像转场(逐行渐变)
使用C++实现多张BMP图片转换为YUV动画----附加淡入淡出转场(逐渐变明变暗),及垂直滑像转场(逐行渐变) 一.BMP图像简介 1.BMP图像是什么? 2.BMP图像文件结构 1)图象文件头 2 ...
- Linux应用开发-LCD显示BMP图片
1. 前言 BMP是一种与硬件设备无关的图像文件格式,是Windows环境中交换与图有关的数据的一种标准,在Windows环境中运行的图形图像软件都支持BMP图像格式.BMP格式的图片存放的就是原始的 ...
- python怎么输出图片_python输出彩色图片python 时间处理
在实际中遇到一个时间处理问题,需要将 Sep 06, 2014 19:30 (UTC 时间) 和 当前时间比较早晚,知道 此 2014-09-06 19:30 格式时间的运算.因此,在处理时,就想 w ...
- 利用libjpeg库实现jpg与bmp图片互转指南
jpg与bmp图片互转指南 一.原理: jpg与bmp图片格式都是以rgb像素为基础的,但是jpg在bmp的rgb的基础上进行了压缩.而且存储的方式是bgr,因此,在二者转换过程中需要转换对应的格 ...
- 基于ZYNQ的网页上传BMP图片至HDMI端口输出实例
目录 Change Log 0 前言 0.1 系统实现 0.2 源码下载 0.3 项目信息 1 ZYNQ开发板HDMI输出BMP图片功能:FPGA相关 1.1 系统框图 1.2 RTL图 1.3 Bl ...
最新文章
- 如何将非官方扩展程序加入chrome的白名单
- 改变textFiled中placeholder的字体颜色的方法以及不想光标在textView的最左边设置方法...
- 企业真的要培养员工?
- python爬虫专家_Python爬虫入门教程 27-100 微医挂号网专家团队数据抓取pyspider
- 推荐 10 个有趣的 Python 项目
- 搜狐视频怎么开启青少年模式
- 7-3 输出最大公约数 (10 分)
- 小鹏汽车9月总交付10412台 成为新造车势力中第一家月交付过万的企业
- html里面css什么意思,Web前端
- Dart基础知识之main()函数介绍
- 传统企业该如何拥抱AI?德勤说野心别太大,分四步实施
- 51NOD-1005 大数加法【大数】
- cognos报表制作(三)Cube开发
- NO.5 Android Opencv 相机人脸识别
- 修心修行“十一字”真言
- 深圳农商行智能柜台项目建设案例
- 搜索引擎和知识图谱那些事
- 中介兴风 深圳楼市起浪
- 解决python官网下载慢
- SecureCRT连接服务器报错Failed to open the host key database file解决方法
热门文章
- [C/C++基础知识] 那些被遗忘的链表知识
- OpenGL ES之着色语言GLSL的使用说明及API
- Django MPTT —— 安装
- Python装饰器之property()详解
- 机器人写诗项目——递归神经网络(RNN)
- 2013年第四届蓝桥杯C/C++ A组国赛 —— 第五题:网络寻路
- 【机器视觉】 dev_set_paint算子
- 【机器视觉】 dev_open_window算子
- 【Linux网络编程】UDP编程
- 【Linux】一步一步学Linux——write命令(236)