Hoodlum1980 (fafa)'s Technological Blog

Languages mainly using and digging: C / CPP, ASM, C#, Python. Other languages:Java.

博客园 首页 新随笔 联系 订阅 管理
上一页 1 2 3 4 5 6 7 8 ··· 11 下一页

2011年2月15日 #

摘要: 【原创性声明】基本上是我平时编码时,通过MSDN,网络搜索等记录的一些技术性笔记。这些内容本质上没有我的原创性和创新性内容,但是因为很杂所以本身并不容易都能一一记住。在这里列出这些条目,已C++为主,没有什么中心思想,仅为备忘和查询使用。 阅读全文
posted @ 2011-02-15 10:35 hoodlum1980 阅读(684) 评论(0) 推荐(0) 编辑

摘要: 这是一篇比较简单的文章,主要讲解的是用 DirectUI 方式实现的对话框上的按钮。例如,QQ界面上的按钮。我在前一篇文章中讲解的 PS 油画滤镜的参数对话框中使用这种方式实现了放大缩小按钮。这种实现在早期我是直接写在窗口过程中的,这样的话是面向过程的方式,代码不容易移植复用。因此现在我在以前实现的基础上,把代码逻辑提取出来,放到一个类中,这样就会很方便在不同项目和场合使用。当然,由于窗口过程和考虑到代码效率的关系,实际上我封装的并不彻底,对于使用者来说依然需要做一些工作。 阅读全文
posted @ 2011-02-15 00:41 hoodlum1980 阅读(3600) 评论(3) 推荐(1) 编辑

2011年1月15日 #

摘要: 【原创性声明】本滤镜是由我采用 PS SDK 开发而成,而滤镜的算法的具体是有谁提出的可能不详,我是参考了 “FilterExplorer” 的源码,本算法的主要参考来源是该项目中的 Filters.cpp, 作者是 Jason Waltman (18, April, 2001)。另国内另一个用C#语言编写的软件 PhotoSprite (Version 3.0 ,2006,由联骏编写)其中的油画滤镜的算法应该也是引用自了前者(或其他同源代码)。在研究此滤镜算法时,我主要参考的是前者的 C++ 代码,本文中对该算法的概念性描述属于我的理解和解读。但该算法的效率并不高,我将该算法的效率大大提高,关于模板尺寸的时间复杂度从 O ( n^2 ) 改进为线性复杂度 O ( n ),关于像素数量的复杂度的常数系数大大减小,对同一测试样本(某个 1920 * 1200 像素 RGB 图像)相同参数的处理速度从 35 秒降低到 3 秒,处理速度大概提高到11倍左右(粗略估算)。 阅读全文
posted @ 2011-01-15 04:38 hoodlum1980 阅读(19201) 评论(6) 推荐(3) 编辑

2010年12月29日 #

摘要: 经过了少许努力,现在我将能够发布给 Photoshop 使用的 ICO 文件格式插件 2.0 版。该插件 2.0 版本主要新增功能是,支持从 PE 文件(DLL,OCX)导入图标的功能。但是由于 Photoshop 可能本身有限制,所以不能直接支持打开 EXE 文件,因此如果要导入 EXE 文件的图标,经过我的调试,发现 Photoshop 不会做任何反应(PS不会调用插件的入口函数),因此一个折中办法是,先把 EXE 文件的后缀改为 DLL,即可正常导入图标。当然,实际上我也能够导入 PE 文件中的位图,但是这个功能意义不大,所以我没有必要去做它。由于有了该功能,现在基本可以肯定,这个插件在功能上一定会超越目前已有的(主要是老外开发的)ICO 格式插件。 阅读全文
posted @ 2010-12-29 09:42 hoodlum1980 阅读(10858) 评论(24) 推荐(0) 编辑

2010年12月16日 #

摘要: 这是我为 Photoshop 编写的一个文件格式插件,IcoFormat,用于读写 Windows 图标文件(扩展名为ICO, CUR)。图标文件格式的PS插件在很多年前有一个老外曾经写过,不过我现在提供的插件则功能上更好,有足够的理由替换掉老外提供的插件。 阅读全文
posted @ 2010-12-16 08:26 hoodlum1980 阅读(4919) 评论(3) 推荐(0) 编辑

2010年10月27日 #

摘要:     本文介绍的内容,是用八叉树法降级一个真彩色图像(BPP=16以上)。这也是某公司在今年校园招聘中的笔试中的最后一道题目。我参考了 Jeff Prosise 所写的这篇文章(见参考资料),然后修改了他提供的范例的源码,使能够更好的演示该算法,同时我也添加了绘制八叉树的代码,可以直观的看到八叉树的形态。     【原创性声明】:本文提到的算法和原始范例的源码来自参考文献。对八叉树的绘制,以及不需要修改显示器模式的条件下,展示八叉树算法生成的索引图像(原范例需要先把显示器调整为256色模式才能看到效果),把真彩色位图通过八叉树算法保存为BMP索引位图文件,属于我增加的代码。 阅读全文
posted @ 2010-10-27 21:17 hoodlum1980 阅读(3715) 评论(3) 推荐(2) 编辑

2010年10月25日 #

摘要: 今将PDA矢量图控件开源。该控件是一个矢量图展示性控件,这是根据需求而定的,因此我没有加上一些实时的编辑操作的支持。该控件是在2007年3月份到4月之间完成的。这个控件的代码我曾经说过,代表了我当时的最高水平。我在编写它的过程中,主要考虑的是代码效率,希望这个控件具有尽可能更好的性能,尽可能更少的内存使用。最终产出的就是这样的一个控件,它的性能和功能已能很好的满足当年的项目需求: 阅读全文
posted @ 2010-10-25 19:52 hoodlum1980 阅读(980) 评论(0) 推荐(1) 编辑

2010年10月10日 #

摘要: 花了一点精力,做了如下 QQ2010 SP1 版本的登录过程演示工具,主要是用于演示如何截取用户登录时的输入。此工具的原理比较基本,主要是利用全局钩子截获用户的输入。主要是演示作用,因此我又做了一个很直观的界面,可以看到截获输入的过程。其用户界面如下所示。 阅读全文
posted @ 2010-10-10 23:04 hoodlum1980 阅读(8292) 评论(19) 推荐(3) 编辑

2010年10月7日 #

摘要: 在早前的一篇文章中我曾经研究过带有 alpha 通道的图标,实际上 XP 系统已经开始支持这样的图标,也就是32 bpp(bits per pixel)的图标了。在本文最后给出的MSDN链接中可以介绍开发者如何创建 32 bpp 的图标,不过不幸的是,VS开发环境不支持编辑这样的图标,而且原生的Photoshop也不支持(尽管有ICO格式插件),只能借助其他专业的图标制作工具,同样不幸的是,其他图标制作工具我用的并不顺手(至少没有PS那样熟练),所以我只能借助 Photoshop 和图标制作工具两者同时使用,从而可以完成制作 32 bpp 图标。 阅读全文
posted @ 2010-10-07 23:38 hoodlum1980 阅读(4492) 评论(0) 推荐(1) 编辑

2010年9月20日 #

摘要: 本文通过解答一个网友提出的问题引起,通过缓冲区溢出,修改函数的返回时的跳转地址,跳入到用户想要执行的代码位置,执行完用户代码以后,再跳回到正确的地址(使程序能够正常的运行),这些动作对于编译器和系统来说是透明的。 阅读全文
posted @ 2010-09-20 20:59 hoodlum1980 阅读(1057) 评论(0) 推荐(0) 编辑

2010年9月11日 #

摘要: 再顺便多写一篇PE文件的文章吧,这一篇文章介绍PE文件的导出表。导出表相对来说应该算最简单的,它的关键结构只有一个。本质上导出表的dir只是指示以下信息,dll的名称地址(ANSI字符串),有多少个导出函数,对导出函数有三个数组,分别是序号数组,函数名称(ANSI字符串)地址数组,函数入口地址(RVA)数组。导入表导出表可以说是直接和动态链接技术相关的 DataDirectory 了。 阅读全文
posted @ 2010-09-11 21:08 hoodlum1980 阅读(3427) 评论(1) 推荐(0) 编辑

2010年9月10日 #

摘要: 在上一篇文章里,已经讲解了加载PE文件的导入表。本篇简要介绍PE文件的资源表的结构和定位方式。 所谓资源表(resource table),就是通常在IDE的资源视图中所看到的那个Tree视图,因此资源表在PE文件中同样是这样的一种类似资源管理器一样的树状逻辑结构。对树,我们不能想类似导入表那样当作线性表中的数组去比较简单直观的加载,而是要用递归函数去重建,这是因为树的定义就是用递归做的定义,所以对树的操作天生的就和递归函数分不开。看起来不可预判的复杂结构,递归函数的代码却非常简洁。 阅读全文
posted @ 2010-09-10 02:31 hoodlum1980 阅读(8150) 评论(2) 推荐(2) 编辑

2010年9月9日 #

摘要: 赞助博主,支付宝的二维码 阅读全文
posted @ 2010-09-09 02:00 hoodlum1980 阅读(528) 评论(0) 推荐(0) 编辑

2010年9月8日 #

摘要: 在上一篇文章里,我使用一个TreeList控件,展示了 PE 文件的内容。在那里可充分了解PE的文件头的信息,但是对section(备注:常见译文为节,段,块)的一些信息我们还没有涉及。比如全局变量等数据,代码,资源,导入表等信息都位于相应的section中,有些section通常具有特定的名字,例如资源通常位于.rsrc,代码通常位于.text,导入表通常位于.idata段,等等。文本讲述的是把一个PE文件的导入表打印出来。我注意到 MS 提供了一个比较有用的函数,ImageRvaToVa,我们稍后主要借助这个函数去从RVA定位我们的目标数据。 阅读全文
posted @ 2010-09-08 21:49 hoodlum1980 阅读(10443) 评论(1) 推荐(3) 编辑

2010年9月5日 #

摘要: 在今天较少有情况需要去研究图像的文件格式,除非某些特定场合。在这里我还是去先做了这样一个小工具,目前已经支持展示BMP, ICO, CUR文件格式内容。实际上只要你知道一个文件的格式定义,你就可以去展示任何类型的文件(诸如EXE, DLL, PSD等等),例如下一步我可能考虑增加展示PE文件格式(可执行文件)。当然了,这里展示的都是二进制文件,也就是通常需要用16进制编辑器查看的文件,像TXT那样的文本文件是没有文件格式定义这种概念的(它只有编码的概念)。我制作它的本意是把它用于展示ICO文件格式,而BMP文件的格式是最基本的,所以它是我第一个加入的功能,关于BMP的文件格式主要参考了MSDN中的相关说明。 阅读全文
posted @ 2010-09-05 02:44 hoodlum1980 阅读(3521) 评论(1) 推荐(1) 编辑

上一页 1 2 3 4 5 6 7 8 ··· 11 下一页