C/C++
文章平均质量分 91
阿发伯
1988年统计大专自学毕业,1989年业余学计算机语言,包括C/C 、basic、Pascal及asm,曾为本系统(统计)和本地政府编写过一些应用软件,现“知天命”久矣,在大连休息,平时打游戏、上网、研究下编程,因没压力,均无成就,仅打发余生而已。
展开
-
C++图像处理 -- 平面几何变换
阅读提示: 《C++图像处理》系列以代码清晰,可读性为主,全部使用C++代码。 《Delphi图像处理》系列以效率为侧重点,一般代码为PASCAL,核心代码采用BASM。 尽可能保持二者内容一致,可相互对照。 本文代码必须包括《C++图像处理 -- 数据类型及公用函数》文章中的BmpData.h头文件以及《C++图像处理 -- 平面几何变换类》TransformMatrix原创 2011-07-14 13:09:40 · 6785 阅读 · 7 评论 -
C++图像处理 -- 图像颜色混合(下)
阅读提示: 《C++图像处理》系列以代码清晰,可读性为主,全部使用C++代码。 《Delphi图像处理》系列以效率为侧重点,一般代码为PASCAL,核心代码采用BASM。 尽可能保持二者内容一致,可相互对照。 本文代码必须包括《C++图像处理 -- 数据类型及公用函数》文章中的BmpData.h头文件。 在《C++图像处理 -- 图像颜色混合(上)》和《C++图像处原创 2011-08-02 09:24:24 · 8142 阅读 · 8 评论 -
C++图像处理 -- 表面模糊
阅读提示: 《C++图像处理》系列以代码清晰,可读性为主,全部使用C++代码。 《Delphi图像处理》系列以效率为侧重点,一般代码为PASCAL,核心代码采用BASM。 尽可能保持二者内容一致,可相互对照。 本文代码必须包括《C++图像处理 -- 数据类型及公用函数》文章中的BmpData.h头文件。 图像的表面模糊处理是Photoshop CS2以后才有的新功能原创 2012-12-07 22:10:43 · 16402 阅读 · 5 评论 -
C++图像处理 -- 图像显示
阅读提示: 《C++图像处理》系列以代码清晰,可读性为主,全部使用C++代码。 《Delphi图像处理》系列以效率为侧重点,一般代码为PASCAL,核心代码采用BASM。 尽可能保持二者内容一致,可相互对照。 本文代码必须包括《C++图像处理 -- 数据类型及公用函数》文章中的BmpData.h头文件以及《C++图像处理 -- 图像合成》中的有关代码。 在《C++图原创 2012-01-06 13:08:44 · 20174 阅读 · 4 评论 -
C++图像处理 -- 颜色矩阵变换
阅读提示: 《C++图像处理》系列以代码清晰,可读性为主,全部使用C++代码。 《Delphi图像处理》系列以效率为侧重点,一般代码为PASCAL,核心代码采用BASM。 尽可能保持二者内容一致,可相互对照。 本文代码必须包括《C++图像处理 -- 数据类型及公用函数》文章中的BmpData.h头文件。 在GDI+中,颜色矩阵变换是处理图像颜色的重要手段,包括颜色的原创 2012-12-18 23:53:53 · 11974 阅读 · 1 评论 -
C++图像处理 -- 图像颜色混合(中)
阅读提示: 《C++图像处理》系列以代码清晰,可读性为主,全部使用C++代码。 《Delphi图像处理》系列以效率为侧重点,一般代码为PASCAL,核心代码采用BASM。 尽可能保持二者内容一致,可相互对照。 本文代码必须包括《C++图像处理 -- 数据类型及公用函数》文章中的BmpData.h头文件。 文章《C++图像处理 -- 图像颜色混合(上)》发表后,获得原创 2011-07-09 23:55:44 · 5117 阅读 · 4 评论 -
C++图像处理 -- 图像翻转(镜像)
阅读提示: 《C++图像处理》系列以代码清晰,可读性为主,全部使用C++代码。 《Delphi图像处理》系列以效率为侧重点,一般代码为PASCAL,核心代码采用BASM。 尽可能保持二者内容一致,可相互对照。 本文代码必须包括《C++图像处理 -- 数据类型及公用函数》文章中的BmpData.h头文件。 对图像的翻转处理,是产生一个与原图像在水平方向或者垂直方向相对原创 2012-12-12 22:24:40 · 19074 阅读 · 0 评论 -
C++图像处理 -- 图像颜色混合(上)
阅读提示: 《C++图像处理》系列以代码清晰,可读性为主,全部使用C++代码。 《Delphi图像处理》系列以效率为侧重点,一般代码为PASCAL,核心代码采用BASM。 尽可能保持二者内容一致,可相互对照。 本文代码必须包括《C++图像处理 -- 数据类型及公用函数》文章中的BmpData.h头文件。 Photoshop提供了丰富的图象图层混合模式,其中的颜色混合原创 2011-07-05 12:29:38 · 14492 阅读 · 27 评论 -
C++图像处理 -- 亮度/对比度调整
阅读提示: 《C++图像处理》系列以代码清晰,可读性为主,全部使用C++代码。 《Delphi图像处理》系列以效率为侧重点,一般代码为PASCAL,核心代码采用BASM。 尽可能保持二者内容一致,可相互对照。 本文代码必须包括《C++图像处理 -- 数据类型及公用函数》文章中的BmpData.h头文件。 在《Delphi图像处理 -- 亮度/对比度调整》一文实现了P原创 2011-12-14 08:17:52 · 22409 阅读 · 9 评论 -
自己动手写C语言格式化输出函数(三)
上接《自己动手写C语言格式化输出函数(二)》、《自己动手写C语言格式化输出函数(一)》。 八、格式化浮点数(有关浮点数的数据定义和底层的数据转换函数见《自己动手写C语言浮点数转换字符串函数》一文)。// 转换浮点数信息到浮点数记录fRec。参数:格式记录,格式方式标记,浮点数记录static void GetFloatRec(FormatRec *rec, INT flag, Float原创 2011-12-24 10:00:24 · 11165 阅读 · 17 评论 -
自己动手写C语言格式化输出函数(二)
上接《自己动手写C语言格式化输出函数(一)》 。 三、格式化字符及字符串。// 宽字符串转换ANSI字符串。参数:ANSI字符串,宽字符串,转换字符数(0不转换)。// 返回实际转换字符个数static INT WStrToStr(LPSTR dst, LPCWSTR src, INT count){ return WideCharToMultiByte(CP_THREAD_ACP原创 2011-12-23 14:06:13 · 3346 阅读 · 0 评论 -
C++图像处理 -- 平面几何变换类
阅读提示: 《C++图像处理》系列以代码清晰,可读性为主,全部使用C++代码。 《Delphi图像处理》系列以效率为侧重点,一般代码为PASCAL,核心代码采用BASM。 尽可能保持二者内容一致,可相互对照。 本文代码必须包括《C++图像处理 -- 数据类型及公用函数》文章中的BmpData.h头文件。 有关图像的平面几何变换,现有的教程、计算机图书以及网上的原创 2010-10-10 14:52:00 · 10500 阅读 · 17 评论 -
C++图像处理 -- 图像合成
阅读提示: 《C++图像处理》系列以代码清晰,可读性为主,全部使用C++代码。 《Delphi图像处理》系列以效率为侧重点,一般代码为PASCAL,核心代码采用BASM。 尽可能保持二者内容一致,可相互对照。 本文代码必须包括《C++图像处理 -- 数据类型及公用函数》文章中的BmpData.h头文件。 在图像处理过程中,图像的合成操作是使用频率最高的,如图像显示、原创 2012-01-04 21:20:49 · 15786 阅读 · 7 评论 -
C++图像处理 -- 文章索引
本文对已发布《C++图像处理》系列文章进行索引链接,以方便阅读和查找。 《C++图像处理 -- 数据类型及公用函数》。提供GDI+位图Bitmap转换过程以及几个最基本的通用过程。所有其它文章代码,包括例子代码,必须包括该文章所介绍的头文件BmpData.h。 《C++图像处理 -- 平面几何变换类》。介绍图像平面几何变换类TransformMatrix。 《C++图像处理 --原创 2012-01-09 21:40:13 · 21062 阅读 · 9 评论 -
C++图像处理 -- 图像色阶调整
阅读提示: 《C++图像处理》系列以代码清晰,可读性为主,全部使用C++代码。 《Delphi图像处理》系列以效率为侧重点,一般代码为PASCAL,核心代码采用BASM。 尽可能保持二者内容一致,可相互对照。 本文代码必须包括《C++图像处理 -- 数据类型及公用函数》文章中的BmpData.h头文件。 在Photoshop中,图像色阶调整应用很广泛,本文介绍的图像色原创 2015-02-27 19:16:17 · 13669 阅读 · 4 评论 -
C++图像处理 -- 数据类型及公用函数
阅读提示: 《C++图像处理》系列以代码清晰,可读性为主,全部使用C++代码。 《Delphi图像处理》系列以效率为侧重点,一般代码为PASCAL,核心代码采用BASM。 尽可能保持二者内容一致,可相互对照。 不经意间,用C++写了不少有关图像处理的文章,与《Delphi图像处理》系列文章相比,文章之间缺乏必要的联系性,因此有必要进行一些调整,并都纳入《C++图像处理系列原创 2012-01-09 21:34:25 · 13072 阅读 · 3 评论 -
发现C++Builder 2010集合类的一个BUG
今天用C++Builder 2010写一段小代码,用到了集合类,可集合运算结果怎么也不对,排除了其它原因,最后确定应该是集合类源代码的问题,下面是一段集合类的测试代码:enum TTest{tt0, tt15 = 15, tt16 = 16};typedef Set TTests;void __fastcall TForm1::Button1Click(TObject *Sender)原创 2014-07-03 00:35:54 · 5023 阅读 · 1 评论 -
C++图像处理 -- 图像黑白调整应用
阅读提示: 《C++图像处理》系列以代码清晰,可读性为主,全部使用C++代码。 《Delphi图像处理》系列以效率为侧重点,一般代码为PASCAL,核心代码采用BASM。 尽可能保持二者内容一致,可相互对照。 本文代码必须包括《C++图像处理 -- 数据类型及公用函数》文章中的BmpData.h头文件。 Photoshop CS的图像黑白调整功能,是通过对红、黄、绿原创 2011-07-10 15:05:59 · 11956 阅读 · 18 评论 -
自己动手写C语言浮点数转换字符串函数
前几天,应一个小友要求,写了几个字符串转换函数帮助其进行语言学习,自觉其中的几个函数还比较满意,故发布在此,可供初学者参考。 浮点数转换字符串函数说简单也简单,说麻烦,也够烦心的,关键看你如何写了。简单点的几十行代码就行,复杂点的恐怕就的几百行代码了。如果还要考虑移植性、可读性甚至可维护性等就更麻烦的了。我一贯认为,一些事务性的项目应着重考虑移植性、可读性和可维护性等,而常用的带点系统性质的原创 2011-12-20 23:21:05 · 9380 阅读 · 3 评论 -
C++图像处理 -- 线性亮度/对比度调整
阅读提示: 《C++图像处理》系列以代码清晰,可读性为主,全部使用C++代码。 《Delphi图像处理》系列以效率为侧重点,一般代码为PASCAL,核心代码采用BASM。 尽可能保持二者内容一致,可相互对照。 本文代码必须包括《C++图像处理 -- 数据类型及公用函数》文章中的BmpData.h头文件。 本文代码是在《C++图像处理 -- 亮度/对比度调整》基础上,原创 2009-08-28 14:36:00 · 19127 阅读 · 16 评论 -
C++图像处理 -- PCX格式图像(上)
阅读提示: 《C++图像处理》系列以代码清晰,可读性为主,全部使用C++代码。 《Delphi图像处理》系列以效率为侧重点,一般代码为PASCAL,核心代码采用BASM。 尽可能保持二者内容一致,可相互对照。 PCX是一个比较早的图像文件格式,它也有过一段时间的辉煌,但随着计算机硬、软件的发展,该图像格式基本已成过去时,主要是因为早期PCX格式图像是配合当时显卡硬件而设计原创 2013-01-27 23:45:41 · 7414 阅读 · 2 评论 -
C++图像处理 -- PCX格式图像(下)
阅读提示: 《C++图像处理》系列以代码清晰,可读性为主,全部使用C++代码。 《Delphi图像处理》系列以效率为侧重点,一般代码为PASCAL,核心代码采用BASM。 尽可能保持二者内容一致,可相互对照。 《C++图像处理 -- PCX格式图像(上)》将PCX格式图像转换为GDI+位图,本文则介绍将GDI+位图转换为PCX格式图像。 下面是GDI+位图转换为PC原创 2013-01-28 22:58:09 · 5062 阅读 · 3 评论 -
自己动手写C语言格式化输出函数(一)
printf系列函数,包括fprintf、sprintf函数等,其功能是将C语言的所有基本数据类型按用户要求进行格式化输出。 printf函数几乎是所有学习C语言的人接触到的第一个函数,是C语言标准中使用频率最高的函数。 printf函数是C语言标准函数中最著名的可变参数函数,看见printf这个函数名,就想起了C语言的说法一点也不过分,因此,可以说是C语言标准函数中的最具标志性的函数原创 2011-12-22 13:32:34 · 6348 阅读 · 6 评论 -
二值图像的腐蚀和膨胀
二值图像的腐蚀和膨胀图像数字处理中应用相当广泛,代码处理也很简单,只不过一些资料在介绍腐蚀和膨胀原理时,用一些形态学、集合上的概念和术语,搞得也有些”高深莫测“了。 从图像处理角度看,二值图像的腐蚀和膨胀就是将一个小型二值图(结构元素,一般为3*3大小)在一个大的二值图上逐点移动并进行比较,根据比较的结果作出相应处理而已。以二值图的骨架为黑色点为例: 作图像腐蚀处理时,如果结构元素中的原创 2011-12-10 22:17:28 · 17984 阅读 · 22 评论 -
C语言版的DBF本地数据库文件操作函数
几个月前,翻出以前的一些1993 - 1995年的C/C++老代码,陆续粘贴到了BLOG上,一来以免不小心遗失(以前很多好代码都丢了),二来可供C/C++爱好者,特别是初学者借鉴参考,本以为就这些了,没料到月头又找出一些更老的代码,都是1991年及以前的,前几天我发上来的《C语言版的磁盘文件分片归并排序函数》就是其中之一。今天准备把1991年用TURBOC 2.0写的DBF本地数据原创 2008-01-11 00:36:00 · 9574 阅读 · 16 评论 -
C语言版的磁盘文件分片归并排序函数
这是一个很老的的C函数,用来实现大的磁盘文件排序。在以前DOS操作系统下,对磁盘文件的排序一般有3种方法:1、将磁盘文件装入内存排序,将排序结果保存到新的文件,这适用于很小的(64K以内)、不需要经常索引的文件;2、对磁盘文件按关键字进行分块排序后,形成一个索引文件。块的大小一般为512K,常采用B+树或者B-数算法,这种方法适用于需要经常索引的磁盘文件,如DBF文件;3、把磁盘文原创 2008-01-03 20:30:00 · 8563 阅读 · 9 评论 -
可嵌套的C语言异常处理机制
C是一门古老的、面向过程的语言,相对于它的运行高效率,其开发效率是较低的,所以长期以来,C就主要被定位在系统软件的开发上,特别是在现代各种可视化编程环境下,C的应用领域也越来越窄,虽然其原因有很多,但是,相对其它现代高级语言而言,其原始的异常处理功能不能不说是低效开发的主要原因之一,如果有一套较完善的异常功能,再配上一套好的常用功能库,应该能提高其开发效率。 在现原创 2007-12-25 02:45:00 · 9215 阅读 · 4 评论 -
C语言版的单位法人代码校验函数
多年没和统计报表打交道了,不知现在还存不存在单位法人代码,反正十年前是每个单位,无论是机关、企事业单位还是社会团体,都要求有这个代码。 当作怀旧,贴出这个十多年前C语言函数代码,现临时写了个演示程序:#include stdio.h>#include string.h>#include stdlib.h>/* 获取单位法人代码校验位 */char GetL原创 2007-12-21 23:44:00 · 3291 阅读 · 0 评论 -
Turbo C使用的汇编函数 -- 鼠标管理函数
上面2篇文章《Turbo C使用的汇编函数 -- VGA 12H模式图形函数(一)》和《Turbo C使用的汇编函数 -- VGA 12H模式图形函数(一)》给出了图形代码,本篇给出鼠标管理TC函数汇编码文件。该代码很简单,而且对速度没很高的要求,完全可用纯C/C++写,但是在DOS年代,即使速度稍有提高以及代码长度缩短,也愿意用汇编码或插入汇编;鼠标功能使用int 33h,要在原创 2007-09-16 00:09:00 · 3018 阅读 · 3 评论 -
Turbo C使用的汇编函数 -- VGA 12H模式图形函数(一)
上次整理以前DOS下的代码,找了个线性回归分析函数,觉得可能还有用,于是放在了《C语言版的线性回归分析函数》中,今天在CSDN的C/C++版,发现居然还有人求DOS下VGA 12H模式下的直接写屏代码,临时找了2个以前的文件,发了出去供参考。后来仔细找了一会,把以前DOS下写的供Trubo C使用的VGA 12H直接写屏图形函数找齐了,还有鼠标和XMS内存管理函数,决定放在这里,供原创 2007-09-15 23:01:00 · 4693 阅读 · 1 评论 -
C++老代码 -- DBF数据文件操作类DBFile
十几年前,dBASE、FoxBase和FoxPro数据库盛极一时,C/C++程序员使用C/C++直接操作DBF数据文件是理所当然的事,下面是我在1994年写的一个DBFile类代码。 DBFIle类的头文件:// DBFIO.HPP#ifndef __DBFIO_HPP#define __DBFIO_HPP#include stdlib.h>#原创 2007-09-16 12:27:00 · 11632 阅读 · 4 评论 -
C++老代码 -- DOS下文本方式的直接写屏
还是十几年前的老代码,一个完整的DOS下文本方式直接写屏C++代码,本代码是在Borland C++ 3.1下编译的,因为其中有插入汇编码,其它C++编译器能否通过,就不得而知了,下面是代码:// CRTIO.HPP#ifndef __CRTIO_HPP#define __CRTIO_HPP#define LINEBYTES 160typede原创 2007-09-16 11:08:00 · 3765 阅读 · 1 评论 -
Turbo C使用的汇编函数 -- VGA 12H模式图形函数(二)
接上篇文章《Turbo C使用的汇编函数 -- VGA 12H模式图形函数(一)》,继续粘贴代码文件:; grimage.asm include graph.inc DATASEGbufseg dw 0bufoff dw 0linebytes dw 0tmpbuf db 80 d原创 2007-09-15 23:23:00 · 2316 阅读 · 0 评论 -
Turbo C使用的汇编函数 -- XMS内存管理函数
本篇给出XMS(扩充内存)内存TC函数汇编码文件,要使用XMS,必须安装驱动程序EMM386.EXE。注意,XMS与EMS(扩展内存)是2种不同的内存管理技术规范,由于它们对内存的管理范围有重叠,所以在驱动程序中应指明EMS的大小,如果全部1M外的内存全部都给了EMS,那么,XMS就只能管理UMB和HMA内存了,而这些内存还必须在DOS中配置才有,下面的配置保证了基本内存以外原创 2007-09-16 01:22:00 · 2713 阅读 · 0 评论 -
C++实现Photoshop色相/饱和度/明度功能
本文用C++实现Photoshop色相/饱和度/明度功能,界面程序使用BCB6;图片操作采用GDI+。代码也可适用于其它C/C++编译器(可能要稍作修改)。 有关Photoshop饱和度调整原理可参见《GDI+ 在Delphi程序的应用 -- 图像饱和度调整》,明度调整原理可参见《GDI+ 在Delphi程序的应用 -- 仿Photoshop的明度调整》。 色相/饱和度原创 2009-05-06 20:42:00 · 11486 阅读 · 18 评论 -
使用GDI+位图数据扫描线处理图像的小技巧
在GDI+图像处理中,我们经常利用BitmapData结构对图像数据扫描线进行操作,在我的大部分BOLG文章中,都使用了这个方法。GDI+位图通过其LockBits方法和UnlockBits方法,分别用来锁定(获取)和解锁(释放)BitmapData数据,我们一般都在这2个方法之间操作图像数据扫描线,如: Bitmap *bmp = new Bitmap(L"d://001-1.jpg原创 2009-09-09 01:32:00 · 5359 阅读 · 4 评论 -
采用灰度分组统计方法实现图像中值滤波
中值滤波是图像处理中常用的一种噪声滤波方法。传统的图像中值滤波代码采用排序方法实现,处理速度主要取决于排序算法,但无论什么排序算法,总离不开大量的元素比较、交换或移动,而这些恰好是当前计算机处理的“弱项”(有经验的程序员都知道,计算机数据处理中,比较、转移、交换和频繁的数据移动比原创 2011-08-26 00:11:37 · 5871 阅读 · 3 评论 -
简洁代码一定比复杂代码效率高吗?
简洁代码一定比复杂代码效率高吗?原创 2011-03-10 23:38:00 · 21733 阅读 · 162 评论 -
精彩代码赏析 -- 有授权许可的字符串拷贝函数源码
文章摘要: 一段看上去“貌不惊人”的Delphi插入汇编代码,却需要授权许可,但是与经典的同类型函数比较,确实“身手不凡”。 研究代码的目的在于借鉴,本文通过分析,并用C++重写代码进行比较,再次证明这段代码效率较高的主要原因在于思路(或者算法),与语言本身效率关系不大。 今天打开Delphi2007的SysUtils.pas文件查看一个函数代码,偶尔看到字符串原创 2010-03-20 17:53:00 · 5392 阅读 · 12 评论 -
在C语言应用程序中使用兼容IStream的流
在C++、Delphi等高级语言应用程序中,使用流进行输入输出操作已经成为了不可缺少的部分。长时间用惯了Delphi,偶尔用一下C,总觉得直接使用文件函数和内存管理函数很不方便,于是便写了几个C语言流函数,考虑到有时要用到接口流IStream,如我在《在C语言Windows应用程序中使用GDI+》介绍的C语言GDI+图像操作函数就用到了IStream,所以便修改成了本文介绍的内容。原创 2010-03-08 12:16:00 · 5246 阅读 · 4 评论