zyl910

优化技巧、硬件体系、图像处理、图形学、游戏编程、国际化与文本信息处理。

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

2006年6月4日

摘要: File: Imm_Prop.txtName: [Imm]Imm API学习笔记——输入法属性Author: zyl910Blog: http://blog.csdn.net/zyl910/Version: V1.0Updata: 2006-6-3引言:MSDN中关于Imm的说明太简略了,而且英文的看不太懂。为此我特地编写了一些小程序测试Imm API,终于被我搞清楚了。 WM_INPUTLANGCHANGE 简介:当窗口接收到WM_INPUTLANGCHANGE消息时,表示输入法发生了改变。 声明:#define WM... 阅读全文
posted @ 2006-06-04 23:19 zyl910 阅读(1475) 评论(0) 推荐(0)

2006年5月30日

摘要: 支持UTF文本文件访问的模块支持常见的ANSI、UTF-8、UTF-16LE、UTF-16BE这几种编码文本是为了解决这个帖子:http://community.csdn.net/Expert/topic/4527/4527535.xml使用Open XXX For Input As #1打开一文本文件时,为什么中文字符处理不对头?原理~~~~以二进制方式打开,判断BOM标记,自己写格式转换程序对于UTF-8可以以用MultiByteToWideChar将其转为Unicode格式,使用Windows2000新增代码页65001对于UTF-16LEVB的String用的就是UTF-16LE格式, 阅读全文
posted @ 2006-05-30 08:43 zyl910 阅读(614) 评论(0) 推荐(0)

摘要: 网络上有很多俄罗斯方块代码。它们大都为了视觉效果,程序比较复杂,不利于学习游戏编程。所以我写了个简单俄罗斯方块代码,尽量用VB本身的功能,没有复杂的DirectX。下载(注意修改下载后的扩展名) mBlock.bas Attribute VB_Name = "mBlock"Option ExplicitPrivate m_Inited As Boolean '是否初始化过'== 单个方块的信息Public Const BlockSize As Long = 4Public Type BlockInfo Box(0... 阅读全文
posted @ 2006-05-30 00:11 zyl910 阅读(982) 评论(0) 推荐(0)

2006年5月29日

摘要: 文件:mFunEntry.bas功能:封装回调函数——为对象方法(Object Method,参数中带this指针的函数) 构造 普通函数(参数中无this指针的函数)形式 的入口作者:zyl910版本:V1.0日期:2005-6-24 在VB使用回调函数很麻烦,得写在模块中,且很难封装。这个模块就是为了解决这个问题。原理:VB对象的结构~~~~~~~~~~~~~~~~~~ Object变量 Object对象 接口函数指针表┏━━━━━━━━┓ ┏━━━━━━━━━┓ ┏━━━[默认接口]━... 阅读全文
posted @ 2006-05-29 23:27 zyl910 阅读(465) 评论(2) 推荐(0)

摘要: 1.zSaveGIF下载:http://files.cnblogs.com/zyl910/zSaveGIF.zip快速的GIF编码/解码程序。其中的GIF_LZW编码/解码算法是我最自豪的。2.NetPicTran下载(注意修改下载后的扩展名) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ (利用GIF_LZW算法实现的)网络图片传输 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~作者:zyl910版本:1.0更新:2004-06-06技术特点~~~~~~~~一、使用TCP协议传输数... 阅读全文
posted @ 2006-05-29 22:59 zyl910 阅读(1008) 评论(0) 推荐(0)

摘要: 当年我QB的封笔之作——在VGA 12h 模式下实时抖动绘制真彩色数据'View RGB'作者:zyl910'使用有序抖动算法(dither)绘制线性渐变区域、RGB色彩空间(Screen 12下)' Up , Down , PageUp , PageDown: 改变B分量' F4~F8: 改变背景' Esc: 退出'直接在QB环境下运行速度很慢,编译为exe后就快些了'展示了以下技术:'1.QB在 VGA 12h 如何快速绘图'2.有序抖动算法的实现'3.模拟Windows窗口,特别是像Windows 9 阅读全文
posted @ 2006-05-29 20:59 zyl910 阅读(347) 评论(0) 推荐(0)

摘要: 貌似收藏与文章差不多收藏到底是干什么用的? 阅读全文
posted @ 2006-05-29 17:23 zyl910 阅读(143) 评论(0) 推荐(0)

摘要: File: StudyYCbCr.txtName: 深入学习YCbCr色彩模型Author: zyl910Version: V1.0Updata: 2006-5-28 最近突然又对图形学有了兴趣,翻出了多年前学习图形学的笔记,感触良多。于是将它们整理好发了上来。一、基础 RGB转YCbCr的转换是这样的:[Y ] = [ 0.299 0.587 0.114 ] [R] [ 0][Cb] = [-0.1687 -0.3313 0.5 ] * [G] + [128][Cr] = [ 0.5 -0.4187 -0.0813] [B] [128] YCbCr转RGB的转换是这样的:[R] = [... 阅读全文
posted @ 2006-05-29 00:27 zyl910 阅读(842) 评论(0) 推荐(0)

2006年5月28日

摘要: File: W32TextI.txtName: Win32文本信息处理导航Author: zyl910Version: V1.2Updata: 2006-5-31 从Windows 2000开始,Windows系统对Unicode多语言支持性非常好,有许多强大API。API函数集~~~~~~~~~National Language Support本地语言支持。用Locale概念来管理不同文化的数值、货币、日期时间等本地文化特性。Windows 95、Windows NT 3.5Unicode and Character SetsUnicode字符集函数。使用CodePage概念将不同编码的多. 阅读全文
posted @ 2006-05-28 11:48 zyl910 阅读(245) 评论(0) 推荐(0)

2006年5月25日

摘要: File: StudyYUV.txtName: 深入学习YUV色彩模型Author: zyl910Version: V1.1Updata: 2006-5-28 最近突然又对图形学有了兴趣,翻出了多年前学习图形学的笔记,感触良多。于是将它们整理好发了上来。一、基础 RGB转YUV的转换是这样的:[Y] = [ 0.299 0.587 0.114] [R][U] = [-0.148 -0.289 0.437] * [G][V] = [ 0.615 -0.515 -0.100] [B] YUV转RGB的转换是这样的:[R] = [1 0 1.140] [Y][G] = [1 -0.395 -0... 阅读全文
posted @ 2006-05-25 00:31 zyl910 阅读(873) 评论(0) 推荐(0)

2006年5月24日

摘要: 用VB写高效的图像处理程序 V2.0(2006-5-24)作者:zyl910 一、为什么这么慢? 二、DIB的结构 三、DIB访问函数 四、实战练习 五、使用DIBSection和模拟指针 六、结合DirectX 一、为什么这么慢? 自盘古开天地以来(好像夸张... 阅读全文
posted @ 2006-05-24 00:21 zyl910 阅读(3864) 评论(0) 推荐(0)

摘要: 'File: mBit.bas'Name: 位运算模块'Author: zyl910'Version: V2.0'Updata: 2006-4-29'E-Mail: zyl910@sina.com''特点:在使用BitPosMask、BitMapMask、BitsMask前必须初始化'需要初始化'[2006-4-29]V2.0'1.加了许多常数'2.全面修改算法'3.取消原来的属性设计,使用函数'4.增加位扫描函数'5.增加端序处理函数Option Explicit' 阅读全文
posted @ 2006-05-24 00:02 zyl910 阅读(405) 评论(0) 推荐(0)

摘要: 'File: mPoint.bas'Name: VB模拟指针模块'Author: zyl910'Version: V1.2'Updata: 2005-8-28'E-Mail: zyl910@sina.com'功能&特点:'1.是在栈中建立模拟指针的。这样就允许 递归、多线程'2.允许编译优化。且这种模拟指针构造方法是 在栈中建立、编译优化 的情况下最快的'3.能像C/C++的指针一样将指针当数组用'4.允许负向寻址。这样有助于图像卷积处理、缩放旋转'5.允许元素大小与步长不同。(Byte可以 阅读全文
posted @ 2006-05-24 00:01 zyl910 阅读(421) 评论(0) 推荐(0)

2006年5月22日

摘要: 网格:(多细胞)生物系统:细胞软件:分子对象:原子类:元素机器码世界:量子世界数字电路:超弦理论还有COM: 神经细胞 阅读全文
posted @ 2006-05-22 18:52 zyl910 阅读(189) 评论(0) 推荐(0)

摘要: File: StudyRGB2Gray.txtName: 彩色转灰度算法彻底学习Author: zyl910Version: V1.0Updata: 2006-5-22一、基础 对于彩色转灰度,有一个很著名的心理学公式:Gray = R*0.299 + G*0.587 + B*0.114二、整数算法 而实际应用时,希望避免低速的浮点运算,所以需要整数算法。 注意到系数都是3位精度的没有,我们可以将它们缩放1000倍来实现整数运算算法:Gray = (R*299 + G*587 + B*114 + 500) / 1000 RGB一般是8位精度,现在缩放1000倍,所以上面的运算是32位整... 阅读全文
posted @ 2006-05-22 17:56 zyl910 阅读(1107) 评论(0) 推荐(1)

2003年8月18日

摘要: 一、为什么这么慢? 自盘古开天地以来(好像夸张了点),一直有人抱怨VB程序速度慢。特别是图像处理,被认为是VB的禁区。说起来也是,市面上的关于VB的图像处理的数据都是先讲计算公式,再直接用PSet(或API函数SetPixel)逐点画(至少我见过的书都是这样)。效果是办到了,但速度慢得离谱:对一幅640*480的图像进行半透明合并就需要10秒钟;而在PhotoShop中,只要一设置图层的透明度,半透明效果立即呈现。难怪有人说VB的闲话。 但这并不表示VB不能写高速的图像处理程序,速度慢是因为没有使用正确的方法。 从VB5开始,能以本机代码编译成exe文件,所以不存在代码执行速度的问题。那... 阅读全文
posted @ 2003-08-18 10:39 zyl910 阅读(1660) 评论(0) 推荐(0)

2002年12月6日

摘要: 关键在于对WM_ENTERIDLE消息的处理在菜单状态下移动鼠标会产生WM_ENTERIDLE消息这时用TempPoint、WindowFromPoint可以取得当前鼠标所指窗体的句柄再用GetClassName取得类名,与"#32768"(菜单窗体的类名)进行比较再等待1秒钟,用keybd_event发送VK_ESCAPE取消菜单状态但是还是有一个的缺点:无法在鼠标不移动的时候自动隐藏这时需要Timer控件的帮忙将下列文件粘贴到记事本,并保存为相应文件AutoHidePopupMenu.vbp======================================== 阅读全文
posted @ 2002-12-06 09:39 zyl910 阅读(447) 评论(0) 推荐(0)

2002年11月25日

摘要: 这是我在一些 数字图像与图形处理 方面的书上面看见的,书上说的比较零散,我稍微整理了一下实践已证明,插值算法对于缩放比例较小的情况是完全可以接受的,令人信服的。一般的,缩小0.5倍以上或放大3.0倍以下,对任何图像都是可以接受的。最邻近插值(近邻取样法): 最临近插值的的思想很简单。对于通过反向变换得到的的一个浮点坐标,对其进行简单的取整,得到一个整数型坐标,这个整数型坐标对应的像素值就是目的像素的像素值,也就是说,取浮点坐标最邻近的左上角点(对于DIB是右上角,因为它的扫描行是逆序存储的)对应的像素值。可见,最邻近插值简单且直观,但得到的图像质量不高双线性内插值: 对于一个目的像素,设置.. 阅读全文
posted @ 2002-11-25 09:31 zyl910 阅读(618) 评论(0) 推荐(0)