点阵字库和矢量字库

点阵字库和矢量字库

ID:14160159

大小:102.00 KB

页数:10页

时间:2018-07-26

点阵字库和矢量字库_第1页
点阵字库和矢量字库_第2页
点阵字库和矢量字库_第3页
点阵字库和矢量字库_第4页
点阵字库和矢量字库_第5页
资源描述:

《点阵字库和矢量字库》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、点阵字库的生产原理(转)  2011-05-1715:31:45

2、  分类:其他技术

3、  标签:

4、字号大中小 订阅点阵字库的生产原理所有的汉字或者英文都是下面的原理,由左至右,每8个点占用一个字节,最后不足8个字节的占用一个字节,而且从最高位向最低位排列。生成的字库说明:(以12×12例子)一个汉字占用字节数:12÷8=1····4也就是占用了2×12=24个字节。编码排序A0A0→A0FEA1A0→A2FE依次排列。以12×12字库的“我”为例:“我”的编码为CED2,所以在汉字排在CEH-AOH=2EH区的D2H-A0H=32H个。所以在12×12字库的起始位置就是[{

5、FE-A0}*2EH+32H]*24=104976开始的24个字节就是我的点阵模。其他的类推即可。英文点阵也是如此推理。在DOS程序中使用点阵字库的方法   首先需要理解的是点阵字库是一个数据文件,在这个数据文件里面保存了所有文字的点阵数据.至于什么是点阵,我想我不讲大家都知道的,使用过"文曲星"之类的电子辞典吧,那个的液晶显示器上面显示的汉子就能够明显的看出"点阵"的痕迹.在PC机上也是如此,文字也是由点阵来组成了,不同的是,PC机显示器的显示分辨率更高,高到了我们肉眼无法区分的地步,因此"点阵"的痕迹也就不那么明显了.   点阵、矩阵、位图这三个概念在本质上是有联系的,

6、从某种程度上来讲,这三个就是同义词.点阵从本质上讲就是单色位图,他使用一个比特来表示一个点,如果这个比特为0,表示某个位置没有点,如果为1表示某个位置有点.矩阵和位图有着密不可分的联系,矩阵其实是位图的数学抽象,是一个二维的阵列.位图就是这种二维的阵列,这个阵列中的(x,y)位置上的数据代表的就是对原始图形进行采样量化后的颜色值.但是,另一方面,我们要面对的问题是,计算机中数据的存放都是一维的,线性的.因此,我们需要将二维的数据线性化到一维里面去.通常的做法就是将二维数据按行顺序的存放,这样就线性化到了一维.   那么点阵字的数据存放细节到底是怎么样的呢.其实也十分的简单,

7、举个例子最能说明问题.比如说16*16的点阵,也就是说每一行有16个点,由于一个点使用一个比特来表示,如果这个比特的值为1,则表示这个位置有点,如果这个比特的值为0,则表示这个位置没有点,那么一行也就需要16个比特,而8个比特就是一个字节,也就是说,这个点阵中,一行的数据需要两个字节来存放.第一行的前八个点的数据存放在点阵数据的第一个字节里面,第一行的后面八个点的数据存放在点阵数据的第二个字节里面,第二行的前八个点的数据存放在点阵数据的第三个字节里面,…,然后后面的就以此类推了.这样我们可以计算出存放一个点阵总共需要32个字节.看看下面这个图形化的例子:   

8、

9、1

10、

11、

12、

13、

14、

15、

16、

17、

18、

19、

20、

21、1

22、

23、

24、

25、   

26、

27、

28、1

29、1

30、

31、1

32、1

33、1

34、1

35、1

36、1

37、1

38、1

39、1

40、

41、

42、   

43、

44、

45、

46、1

47、

48、

49、

50、

51、

52、

53、

54、

55、1

56、

57、

58、

59、   

60、1

61、

62、

63、

64、

65、

66、1

67、

68、

69、

70、

71、

72、1

73、

74、

75、

76、   

77、

78、1

79、1

80、

81、

82、

83、1

84、

85、

86、

87、

88、

89、1

90、

91、

92、

93、   

94、

95、

96、1

97、

98、

99、

100、1

101、

102、

103、

104、

105、1

106、

107、

108、

109、

110、   

111、

112、

113、

114、

115、1

116、

117、

118、1

119、

120、

121、

122、1

123、

124、

125、

126、

127、   

128、

129、

130、

131、1

132、

133、

134、

135、1

136、

137、

138、1

139、

140、

141、

142、

143、

144、   

145、

146、

147、1

148、

149、

150、

151、

152、

153、1

154、

155、1

156、

157、

158、

159、

160、

161、   

162、1

163、1

164、1

165、

166、

167、

168、

169、

170、

171、1

172、

173、

174、

175、

176、

177、

178、   

179、

180、

181、1

182、

183、

184、

185、

186、

187、1

188、

189、1

190、

191、

192、

193、

194、

195、   

196、

197、

198、1

199、

200、

201、

202、

203、1

204、

205、

206、

207、1

208、

209、

210、

211、

212、   

213、

214、

215、1

216、

217、

218、

219、1

220、

221、

222、

223、

224、

225、

226、1

227、

228、

229、

230、   

231、

232、

233、1

234、

235、

236、1

237、

238、

239、

240、

241、

242、

243、1

244、1

245、1

246、

247、   

248、

249、

250、

251、

252、1

253、

254、

255、

256、

257、

258、

259、

260、

261、1

262、

263、

264、   

265、

266、

267、

268、

269、

270、

271、

272、

273、

274、

275、

276、

277、

278、

279、

280、

281、   可以看出这是一个"汉"字的点阵,当然文本的方式效果不是很好.根据上面的原则,我们可以写出这个点阵的点阵数据:0x40,0x08,0x37,0xfc,0x10,0x08,…,当然写这个确实很麻烦所以我不再继续下去.我这样做,也只是为了向你说明,在点阵字库中,每一个点阵的数据就是按照这种方式存放的.   当然也存在着不规则的点阵,这里说的不规则,指的是点阵的宽度不是8的倍数,比如12*12的点阵,那么这样的点阵数据又是如何存放

282、的呢?其实也很简单,每一行的前面8个点存放在一个字节里面,每一行的剩下的4点就使用一个字节来存放,也就是说剩下的4个点将占用一个字节的高4位,而这个字节的低4位没有使用,全部都默认的为零.这样做当然显得有点浪费,不过却能够便于我们进行存放和寻址.对于其他不规则的点阵,也是按照这个原则进行处理的.这样我们可以得出一个m*n的点阵所占用的字节数为(m+7)/8*n.   在明白了以上所讲的以后,我们可以写出一个显示一个任意大小的点阵字模的函数,这个函数的功能是输出一个宽度为w,高度为h的字模到屏幕的(x,y)坐标出,文

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。