社区
C语言
帖子详情
求 读去bmp文件的tc源程序,谢谢
DreamingPig
2003-10-20 05:09:50
email:rockzhhj@163.com
...全文
37
2
打赏
收藏
求 读去bmp文件的tc源程序,谢谢
email:rockzhhj@163.com
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
0738111080
2003-10-20
打赏
举报
回复
看不懂
daizh
2003-10-20
打赏
举报
回复
/*--------------------256bmp.c----------------------*/
#include "dos.h"
#include "stdio.h"
#include "process.h"
#include "bios.h"
void selectpage(register char page) /*换页函数*/
{ union REGS r;
r.x.ax=0x4f05;
r.x.bx=0;
r.x.dx=page; /*选择页面*/
int86(0x10,&r,&r);
}
unsigned char set_SVGA_mode(int vmode) /*设置SVGA屏幕模式*/
{ union REGS r;
r.x.ax=0x4f02;
r.x.bx=vmode;
int86(0x10,&r,&r);
return(r.h.ah);
}
unsigned int get_SVGA_mode() /*获取当前SVGA屏幕模式*/
{ union REGS r;
r.x.ax=0x4f03;
int86(0x10,&r,&r);
return(r.x.bx);
}
void main()
{ char buffer[640],page_new=0,page_old=0;
int i,j,k,n,r,g,b,savemode;
long position,width,length;
FILE *fp;
puts("This is a 256 color bmp viewer! Author:WuJin");
puts("Input filename:"); /*输入要显示的BMP文件路径*/
gets(buffer);
if((fp=fopen(buffer,"rb"))==NULL)
{ printf("Can't open file: %s",buffer);
return;
}
fseek(fp,28,SEEK_SET);
fread(&i,2,1,fp);
if(i!=8) /*检查是否为256色位图*/
{ puts("Not a 256 color bitmap!");
fclose(fp);exit(0);
}
fseek(fp,18,SEEK_SET);
fread(&width,4,1,fp);
fread(&length,4,1,fp);
savemode=get_SVGA_mode(); /*先保存原来的屏幕模式*/
set_SVGA_mode(0x101); /*硬件无关性初始化屏幕为640*480 256色模式*/
fseek(fp,54,SEEK_SET);
for(i=0;i<256;i++) /*按照该图片的DAC色表设置色彩寄存器*/
{ b=fgetc(fp);g=fgetc(fp);r=fgetc(fp); /*获取R、G、B分量*/
outportb(968u,i);
outportb(969u,r>>2);
outportb(969u,g>>2);
outportb(969u,b>>2);
fgetc(fp);
}
k=(width%4)?(4-width%4):0; /*宽度修正值*/
for(j=length-1;j>=0;j--)
{ fread(buffer,width,1,fp);
for(i=0,n=0;i<width;i++,n++)
{ position=j*640l+i; /*计算要显示点的显存位置*/
page_new=position/65536l; /*计算显示页*/
if(page_new!=page_old) /*当显示页不同时更换页面,提高一定的输出速度*/
{selectpage(page_new);page_old=page_new;}
pokeb(0xa000,position%65536l,buffer[n]); /*写到显存位置*/
}
fseek(fp,k,SEEK_CUR); /*每行绘制完后修正宽度*/
}
fclose(fp);
bioskey(0);
set_SVGA_mode(savemode); /*恢复屏幕*/
}
数字信号处理实验报告
实验一图形为
TC
图形模式下保存所得
BMP
图像。实验二图形为MATLAB所得。均附有源
文件
。 对C语言源
文件
: 1. complex.h定义了复数的加减乘除运算的子程序,用于傅立叶变换 2. dsp.h定义了傅立叶变换及快速傅立叶变换的...
《C语言高级编程与实例剖析》源码
3.4
文件
分割程序 91 3.4.1 操作方法 91 3.4.2 源代码解析 91 3.4.3 运行结果 94 3.4.4 归纳总结 94 3.5
文件
合并程序 94 3.5.1 操作方法 94 3.5.2 源代码解析 95 3.5.3 运行结果 97 ...
c语言读取24位
bmp
图像,[原创]在
TC
下显示24位真彩色
BMP
位图
[原创]在
TC
下显示24位真彩色
BMP
位图在
TC
下显示24位
BMP
虽然在
TC
显示24位图像上的速度远远比不上256色的速度快,但是真彩色色彩带给我们的视觉上的冲击是256色远远不能达到的。我们今天就来仔细描述下我对24位位图的...
BMP
文件
初步使用笔记
BMP
文件
在c语言图形编程中,640*480+16色是极其常用的模式,具有足够的分辨率,且为大多数显卡所支持,下面将我最近在这一模式下使用16色
bmp
文件
的经验随手记下来(后来也扩展到了256色,不过以16色为基础):一.
BMP
...
计算机基本应用能力,计算机应用能力基本.ppt
计算机应用能力基本计算机基本应用能力;课程内容安排(4课时);
文件
与磁盘的基本操作 ;...例如: A:\file1.cpp表示C++
源程序
文件
“file1.cpp”存储在A盘上。又如: C:\
TC
30\BIN\
TC
.exe表示可执行
文件
TC
.exe存储在C盘的...
C语言
69,369
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章