易码技术论坛

 找回密码
 加入易码
搜索
查看: 71298|回复: 8

我有较多问题,你能回答出几个呢?

[复制链接]
发表于 2006-2-19 19:48:00 | 显示全部楼层
1 Lava里面没有考虑光标位置问题,如果需要右对齐,可以自己定义函数来确定字符输出的位置。

2 楼主说所得BMP严格来说应该是160*80的单色BMP。
从文件开始偏移量00h-35h(54Byte)为BMP的文件头,里面包含了BMP文件的一些相关信息(类型、文件大小、图像大小、色彩数、分辨率等等)
36h-3Dh(8Byte)为调色板信息,这里只有两种颜色。
3Eh-文件结尾为图像信息,每一个bit表示一个像素对应的颜色的索引值

3 Sec格式文件固定大小1604Byte,前面1600Byte为截图数据(如果数据不满1600Byte,用FFh补足)
后4Byte分别是截取区域的X坐标、Y坐标,长度、宽度。他们的范围都是横[0,19],纵[0,7]。每一个值表示8个像素。例如X=2,对应的是屏幕横坐标16
 楼主| 发表于 2006-2-22 12:47:00 | 显示全部楼层
感谢yzk0370

那么,在1)中,若需要设计一个右对齐输出函数,则函数中,在输出的列数计算出后必有一行Locate语句,它的列参数容易得到,可是应在第几行输出呢?不得而知。希望您再次给出回答。
发表于 2006-2-22 13:44:00 | 显示全部楼层
关于右对齐有个简单的方法,就是在你需要排列的字符串的前面补空格,使他们达到同样的长度,然后在同一横坐标位置输出就可以。

或者,如果你能确的你的字符串中的最长的字符串的长度,可以计算出别的字符串与他长度的差值。比如

  1. char msg[][5]={"1234","123","12","1"};
  2. 他们对齐的时候效果是
  3.     1234
  4.      123
  5.       12
  6.        1
复制代码

比如"1234"是在X=10输出,那么"1234"和"123"的长度差值是1,把这个1加到"1234"的输出位置上面得到X=10+1=11,即为"123"的输出位置。其他的字符串也可以用同样的方法。
 楼主| 发表于 2006-3-6 12:40:00 | 显示全部楼层
yzk0370,你并没有理解我的意思,我希望的函数原型是void rprint(int text)
发表于 2006-3-6 12:48:00 | 显示全部楼层
void rprint(int text)?
如果你想实现这样效果

  1. ------------------
  2. |abcdefghijklmnop|
  3. |      1234567890|
  4. |           ^&*()|
  5. ------------------
复制代码

还是可以根据字符串长度和目标右边坐标计算出字符串首字符的位子
难道你是不能确定目标右边坐标?
 楼主| 发表于 2006-3-10 12:39:00 | 显示全部楼层
对于大字体屏幕,void rprint(int text)大约应该这样:

{

int len,left;

len=strlen(text);

left=20-len;

Locate(?,left);      /*请问这里的?处应该填什么?*/

printf("%s",text);

}

我不希望添加任何其他参数。
发表于 2006-3-10 16:51:00 | 显示全部楼层
以下是引用yzk0370在2006-2-19 19:48:00的发言:[BR]1 Lava里面没有考虑光标位置问题,如果需要右对齐,可以自己定义函数来确定字符输出的位置。

2 楼主说所得BMP严格来说应该是160*80的单色BMP。
从文件开始偏移量00h-35h(54Byte)为BMP的文件头,里面包含了BMP文件的一些相关信息(类型、文件大小、图像大小、色彩数、分辨率等等)
36h-3Dh(8Byte)为调色板信息,这里只有两种颜色。
3Eh-文件结尾为图像信息,每一个bit表示一个像素对应的颜色的索引值

3 Sec格式文件固定大小1604Byte,前面1600Byte为截图数据(如果数据不满1600Byte,用FFh补足)
后4Byte分别是截取区域的X坐标、Y坐标,长度、宽度。他们的范围都是横[0,19],纵[0,7]。每一个值表示8个像素。例如X=2,对应的是屏幕横坐标16
发表于 2006-3-12 13:23:00 | 显示全部楼层
对了,BMP的图片数据是倒转的,就是屏幕最顶端的图形数据被记录在文件的末尾。如果显存是这样的:

12 34 56 78 90 AB CD
22 33 44 55 66 77 88
55 66 99 88 88  22 33

那图片是这样存的:

55 66 99 88 88  22 33
22 33 44 55 66 77 88
12 34 56 78 90 AB CD



请教一下楼上,BMP文件头的数据具体是怎样的(不仅是单色BMP)。
 楼主| 发表于 2006-2-19 16:46:43 | 显示全部楼层 |阅读模式
1)怎样在程序中得知当前光标的位置?我认为此问题不被解决时,便无法制作出例如右对齐输出函数这样的简单函数。

2)bmp格式的图片占1662字节,它是怎样记录一幅图片的?即怎样正确读出图片信息?

3)用“绘图器.lav”制作成的sec格式的图片是怎样记录一幅图片的?即怎样正确读出图片信息?

4)Secret函数的用途?的用法?

5)Crc16函数的用途?


您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

Archiver|手机版|小黑屋|EMAX Studio

GMT+8, 2024-5-11 03:38 , Processed in 0.011934 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表