Iwrite(hf, (LPSTR)Ip Data, BufSize) ∥释放内存和资源 ReleaseD(hWnd, hDc) LocalUnlock(hTemplmg Data); ocalFree(hTemplmg Data LocalUnlock(hInt Buf); LocalFree(hInt Buf) 要注意的是,误差传播有时会引起流水效应,即误差不断向下,向右累加传播。解决的办法 是:奇数行从左到右传播,偶数行从右到左传播。 43将bmp文件转换为txt文件 在讲图案化技术时,我突然想到了一个非常有趣的应用,那就是bmp2wxt。如果你喜欢上 BBS(电子公告牌系统),你可能想做一个花哨的签名档。瞧,这是我好朋友 Casper的签名档 (见图48),胖乎乎的,是不是特别可爱? ssssssssssssssssssssssssscc dssssssssssssssssssssssssssssssc dssssssssssssssssss, s ssssssssssssssssssssssssssssssi Sh SssSSsssssssssssssssssssF, sssh, ?sssssssssshSF sss555F:??$55:)$s5$P",,SF ?s55555h,:P'Js$F,s, ?Ss555cds5$h,“,ds sssssssssssssssssssssssssscssSsh sssssssbcccc,, ??ssssssccf"??ssss??sssssss s5555h?555$h:.dSS5FP °sss5hc, cassis55P ssssssssssssssss: SSSSSSSSS???????" 图48 Casper的签名档 你仔细观察一下,就会发现,这是一幅全部由字符组成的图,因为在BBS中只能出现文本 的东西。那么,这幅图是怎么做出来的呢?难道是自己一个字符一个字符拼出来的。当然不 是了,有一种叫bmp2t的应用程序(2的发音和“to”一样,所以如此命名),能把位图文件 转换成和图案很相似的字符文本。是不是觉得很神奇?其实原理很简单,用到了和图案化技 术类似的思想:首先将位图分成同样大小的小块,求出每一块灰度的平均值,然后和每个字_lwrite(hf,(LPSTR)lpTempImgData,BufSize); _lclose(hf); //释放内存和资源 ReleaseDC(hWnd,hDc); GlobalUnlock(hImgData); LocalUnlock(hTempImgData); LocalFree(hTempImgData); LocalUnlock(hIntBuf); LocalFree(hIntBuf); return TRUE; } 要注意的是,误差传播有时会引起流水效应,即误差不断向下,向右累加传播。解决的办法 是:奇数行从左到右传播,偶数行从右到左传播。 4.3 将 bmp 文件转换为 txt 文件 在讲图案化技术时,我突然想到了一个非常有趣的应用,那就是 bmp2txt。如果你喜欢上 BBS(电子公告牌系统),你可能想做一个花哨的签名档。瞧,这是我好朋友 Casper 的签名档 (见图 4.8),胖乎乎的,是不是特别可爱? 图 4.8 Casper 的签名档 你仔细观察一下,就会发现,这是一幅全部由字符组成的图,因为在 BBS 中只能出现文本 的东西。那么,这幅图是怎么做出来的呢?难道是自己一个字符一个字符拼出来的。当然不 是了,有一种叫 bmp2txt 的应用程序(2 的发音和“to”一样,所以如此命名),能把位图文件 转换成和图案很相似的字符文本。是不是觉得很神奇?其实原理很简单,用到了和图案化技 术类似的思想:首先将位图分成同样大小的小块,求出每一块灰度的平均值,然后和每个字