该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

/*获取当前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图片??相关推荐

  1. c语言坐标输出图片,tc 如何在指定坐标处 输出bmp图片??

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 /*获取当前SVGA屏幕模式*/ unsigned int get_SVGA_mode() { union REGS r; r.x.ax=0x4f03; ...

  2. c语言如何在坐标输出,tc 如何在指定坐标处 输出bmp图片??

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 /*获取当前SVGA屏幕模式*/ unsigned int get_SVGA_mode() { union REGS r; r.x.ax=0x4f03; ...

  3. OpenCV读取多幅图片,读取系列图片,读取文件夹中指定图像类型的系列图片

    读取系列图片通常是将文件夹中的所有文件名保存在txt中,再读取,如链接和链接所示.这是通常的操作方法. 之前写过一篇利用OpenCV读取系列图片的例子,参见链接,但是,实际应用中并不能改变文件名,本文 ...

  4. bmp文件头_「正点原子FPGA连载」第十九章SD卡读BMP图片LCD显示

    1)摘自[正点原子]领航者 ZYNQ 之嵌入式开发指南 2)实验平台:正点原子领航者ZYNQ开发板 3)平台购买地址:https://item.taobao.com/item.htm?&id= ...

  5. 使用C++实现多张BMP图片转换为YUV动画----附加淡入淡出转场(逐渐变明变暗),及垂直滑像转场(逐行渐变)

    使用C++实现多张BMP图片转换为YUV动画----附加淡入淡出转场(逐渐变明变暗),及垂直滑像转场(逐行渐变) 一.BMP图像简介 1.BMP图像是什么? 2.BMP图像文件结构 1)图象文件头 2 ...

  6. Linux应用开发-LCD显示BMP图片

    1. 前言 BMP是一种与硬件设备无关的图像文件格式,是Windows环境中交换与图有关的数据的一种标准,在Windows环境中运行的图形图像软件都支持BMP图像格式.BMP格式的图片存放的就是原始的 ...

  7. python怎么输出图片_python输出彩色图片python 时间处理

    在实际中遇到一个时间处理问题,需要将 Sep 06, 2014 19:30 (UTC 时间) 和 当前时间比较早晚,知道 此 2014-09-06 19:30 格式时间的运算.因此,在处理时,就想 w ...

  8. 利用libjpeg库实现jpg与bmp图片互转指南

    jpg与bmp图片互转指南 一.原理: ​ jpg与bmp图片格式都是以rgb像素为基础的,但是jpg在bmp的rgb的基础上进行了压缩.而且存储的方式是bgr,因此,在二者转换过程中需要转换对应的格 ...

  9. 基于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 ...

最新文章

  1. 如何将非官方扩展程序加入chrome的白名单
  2. 改变textFiled中placeholder的字体颜色的方法以及不想光标在textView的最左边设置方法...
  3. 企业真的要培养员工?
  4. python爬虫专家_Python爬虫入门教程 27-100 微医挂号网专家团队数据抓取pyspider
  5. 推荐 10 个有趣的 Python 项目
  6. 搜狐视频怎么开启青少年模式
  7. 7-3 输出最大公约数 (10 分)
  8. 小鹏汽车9月总交付10412台 成为新造车势力中第一家月交付过万的企业
  9. html里面css什么意思,Web前端
  10. Dart基础知识之main()函数介绍
  11. 传统企业该如何拥抱AI?德勤说野心别太大,分四步实施
  12. 51NOD-1005 大数加法【大数】
  13. cognos报表制作(三)Cube开发
  14. NO.5 Android Opencv 相机人脸识别
  15. 修心修行“十一字”真言
  16. 深圳农商行智能柜台项目建设案例
  17. 搜索引擎和知识图谱那些事
  18. 中介兴风 深圳楼市起浪
  19. 解决python官网下载慢
  20. SecureCRT连接服务器报错Failed to open the host key database file解决方法

热门文章

  1. [C/C++基础知识] 那些被遗忘的链表知识
  2. OpenGL ES之着色语言GLSL的使用说明及API
  3. Django MPTT —— 安装
  4. Python装饰器之property()详解
  5. 机器人写诗项目——递归神经网络(RNN)
  6. 2013年第四届蓝桥杯C/C++ A组国赛 —— 第五题:网络寻路
  7. 【机器视觉】 dev_set_paint算子
  8. 【机器视觉】 dev_open_window算子
  9. 【Linux网络编程】UDP编程
  10. 【Linux】一步一步学Linux——write命令(236)