| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 931 人关注过本帖
标题:求一打开位图的程序,谢谢
只看楼主 加入收藏
newboy
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2004-8-19
收藏
 问题点数:0 回复次数:1 
求一打开位图的程序,谢谢
哪能位大哥能提供给小弟一个关于打开位图的程序范例呀,谢谢!
搜索更多相关主题的帖子: 位图 
2004-11-29 16:29
yywyai
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2004-12-9
收藏
得分:0 

/* Svga64k.bgi 测试文件 */

#include "graphics.h" #include "Svga256.h" #include "stdio.h" #include "fcntl.h" #include "malloc.h" #include "io.h"

int huge Return_SVGA256(void) { return(SVGA320x200x256); /* 返回各种分辨率的对应编号 0~6 宏定义参见 Svga256.h */ }

int main(void) { int width, height, i=DETECT, j=0, x0, y0, fp; unsigned char fix, *buffer, pix24b[4]; DacPalette256 dac256; installuserdriver("Svga256", Return_SVGA256); /* 对于svga256必需执行该函数以安装BGI驱动 */ initgraph(&i, &j, ""); /* 执行TC默认的BGI初始化函数 */

if((fp = open("xy_256.bmp", O_RDONLY | O_BINARY)) == -1) { puts("Can't find file ""xy_256.bmp""."); return 1; } lseek(fp, 18, SEEK_SET); read(fp, &width, 4); read(fp, &height, 4); fix = (width % 4) ? (4 - width % 4) : 0; x0 = (320 - width) / 2; y0 = (200 - height) / 2; lseek(fp, 54, SEEK_SET); for(i = 0; i < 256; i++) /* 按照该图片的DAC色表设置色彩寄存器 */ { read(fp, pix24b, 4); /* 读取DAC分量信息 */ /* 设置调色板 */ dac256[i][0] = pix24b[2] >> 2; dac256[i][1] = pix24b[1] >> 2; dac256[i][2] = pix24b[0] >> 2; } setvgapalette256(&dac256); /* 应用调色板, 定义参见 Svga256.h */ buffer = (unsigned char *)malloc(width); for(j = height - 1; j >= 0; j--) { read(fp, buffer, width); lseek(fp, fix, SEEK_CUR); for(i = 0; i < width; i++) putpixel(x0+i, y0+j, buffer[i]); } free(buffer); close(fp); getch(); closegraph(); return 0; }

2004-12-09 15:30
快速回复:求一打开位图的程序,谢谢
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.058729 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved