| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3719 人关注过本帖
标题:[求助]怎么获取64K色图形模式下的某点颜色值
只看楼主 加入收藏
RockCarry
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:13
帖 子:662
专家分:58
注 册:2005-8-5
收藏
得分:0 
层级或模块之间的通信或调用协议就称之为接口。个人认为整个计算机世界在大的范围内是层级式的、模块化的,对象化只是在模块的内部才得到体现。因此说,真正的代码重用不是面向对象的继承,而是层级和模块之间的接口。面向对象的继承机制重用的只是一个类而已,而接口实现的重用,则是重用了整个计算机世界。
对象其实只是对模块的另一种提法而已,它是设计得更好的模块。
2006-09-08 18:01
一笔苍穹
Rank: 1
等 级:新手上路
帖 子:640
专家分:0
注 册:2006-5-25
收藏
得分:0 
这要是能整理成一个学习纲要就好了,可惜发帖字数有限制
2006-09-09 09:49
RockCarry
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:13
帖 子:662
专家分:58
注 册:2005-8-5
收藏
得分:0 
只是随便扯一扯淡,说得也不一定正确。现在都没有太多机会写文章,其实除了上班时间,平时都很空闲的,可是呢,还没有电脑,所以周末基本上都跑到网吧去打游戏了,到网吧也只有打游戏,什么都干不了。
2006-09-09 10:47
一笔苍穹
Rank: 1
等 级:新手上路
帖 子:640
专家分:0
注 册:2006-5-25
收藏
得分:0 
加油,早些买个本本!
2006-09-09 10:49
cdmalcl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:4091
专家分:524
注 册:2005-9-23
收藏
得分:0 

终于研究出来了
最近心情不是很好 事还多 所以一直没多弄 拖多了今天

int GRPAH_MAXX;

void init64k()/*图形初始化*/
{
int gd=DETECT,gm=0;
installuserdriver("Svga64K", Return_SVGA64K);
initgraph(&gd, &gm, "");
GRPAH_MAXX=getmaxx()+1;
}

int putpoint(int x, int y, rgb16M color)/*画点(x,y)*/
{
int page;

page = (int)((y*(long)GRPAH_MAXX +x) >> 15);
_BX = 0;
_DX =page;
_AX = 0x4f05;
__int__(0x10);

setrgbpalette(1026, color.r >> 3, color.g >> 2, color.b >> 3);
putpixel(x, y, 0);
}

unsigned int far *videoptr = (int far *)MK_FP(0xa000, 0);
unsigned int get64kdot(int x,int y)/*获取(x,y)的颜色值*/
{
long addr;
int page;

page = (int)((addr = (long)y *GRPAH_MAXX +(long)x) >> 15);

_BX = 0;
_DX =page;
_AX = 0x4f05;
__int__(0x10);

return *(videoptr + (unsigned)(addr & 0xffff));

}

rgb16M get_rgb_dot(int x,int y)/*获取颜色分量*/
{
rgb16M color_rgb;
unsigned int color;

color=get64kdot(x,y);
color_rgb.r=(color/2048)<<3;
color_rgb.g=((color%2048)/32)<<2;
color_rgb.b=((color%2048)%32)<<3;

return color_rgb;
}

2006-09-09 22:22
cdmalcl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:4091
专家分:524
注 册:2005-9-23
收藏
得分:0 
2006-09-09 22:24
一笔苍穹
Rank: 1
等 级:新手上路
帖 子:640
专家分:0
注 册:2006-5-25
收藏
得分:0 
color_rgb.r=(color/2048)<<3;
color_rgb.g=((color%2048)/32)<<2;
color_rgb.b=((color%2048)%32)<<3;
把里面的除法和求余全部优化掉,用移位代替。
2006-09-11 10:26
cdmalcl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:4091
专家分:524
注 册:2005-9-23
收藏
得分:0 
好的
2006-09-11 10:55
快速回复:[求助]怎么获取64K色图形模式下的某点颜色值
数据加载中...
 
   



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

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