自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

闲人阿发伯的业余编程心得

闲云野鹤般的生活

  • 博客(132)
  • 资源 (7)
  • 收藏
  • 关注

原创 Delphi图像处理 -- 灰色浮雕

阅读提示:    《Delphi图像处理》系列以效率为侧重点,一般代码为PASCAL,核心代码采用BASM。    《C++图像处理》系列以代码清晰,可读性为主,全部使用C++代码。    尽可能保持二者内容一致,可相互对照。    本文代码必须包括文章《Delphi图像处理 -- 数据类型及公用过程》中的ImageData.pas单元和《Delphi图像处理 -- 平面几何变换类》Transfo

2008-08-28 08:13:00 11124 30

原创 Delphi图像处理 -- 设置阈值

阅读提示:    《Delphi图像处理》系列以效率为侧重点,一般代码为PASCAL,核心代码采用BASM。    《C++图像处理》系列以代码清晰,可读性为主,全部使用C++代码。    尽可能保持二者内容一致,可相互对照。   本文代码必须包括文章《Delphi图像处理 -- 数据类型及公用过程》中的ImageData.pas单元。      GDI+的TGpImageAttributes类

2008-08-19 08:42:00 5369 5

原创 GDI+ 在Delphi程序的应用 -- 文字描边与阴影扩展

    自从文章《GDI+ 在Delphi程序的应用 -- 可调节的文字阴影特效》发表后,不少人问我怎样实现文字描边。由于我只是个业余编程爱好者,加上文化底蕴差,只要涉及算法和编程理论方面的东西,我就无能为力了,所以直到目前,我也不知道具体的描边算法是怎样的(网上搜索过N次,也没找到答案,可能这方面的东西是要卖钱的)。    因问得人多了,有时我也思索和研究一下,总算找了个方法可以实现,虽然同

2008-08-04 20:35:00 9624

原创 GDI+ 在Delphi程序的应用 -- 制作水印效果图片

    利用GDI+可以很方便的制作带水印效果的图片,网上介绍这方面的文章也很多,但鲜有Delphi的,本文参照网上文章http://www.codeproject.com/KB/GDI-plus/watermark.aspx介绍的方法,用Delphi 2007制作水印效果图片,原代码如下:unit Main;interfaceuses  Windows, Messages, SysUti

2008-05-15 11:33:00 12286 16

原创 C#版可调节的文字阴影特效

        本来春节前不准备写BLOG文章了,可前几天有几个搞C#的朋友来信说,对文章《GDI+ 在Delphi程序的应用 -- 可调节的文字阴影特效》的内容很感兴趣,但苦于对Delphi不熟悉,想请我帮忙将其改为C#版的。可他们哪里知道,我从未用C#写过代码(因我只是个业余编程爱好者,C#好像不适合我,我儿子是搞java的,对C#也不怎么熟),好在五年前我买过一本《C#入门经典》,只好赶鸭子

2008-01-15 00:13:00 9485 17

原创 C语言版的DBF本地数据库文件操作函数

        几个月前,翻出以前的一些1993 - 1995年的C/C++老代码,陆续粘贴到了BLOG上,一来以免不小心遗失(以前很多好代码都丢了),二来可供C/C++爱好者,特别是初学者借鉴参考,本以为就这些了,没料到月头又找出一些更老的代码,都是1991年及以前的,前几天我发上来的《C语言版的磁盘文件分片归并排序函数》就是其中之一。今天准备把1991年用TURBOC 2.0写的DBF本地数据

2008-01-11 00:36:00 9574 16

原创 GDI+ 在Delphi程序的应用 -- GDI+图像与GDI位图的相互转换

        Delphi的TBitmap封装了Windows的GDI位图,因此,TBitmap只支持bmp格式的图像,但是在Delphi应用程序中,常常会遇到图形格式的转换,如将Delphi位图TBitmap的图像转换为其它格式保存,或者将其它图像格式转换为TBitmap等。这时候,我们往往借助一些第三方组件或代码,Delphi自带的TJPEG.pas就是jpeg格式图像转换的第三方代码单元。

2008-01-08 22:32:00 10060 10

原创 C语言版的磁盘文件分片归并排序函数

        这是一个很老的的C函数,用来实现大的磁盘文件排序。在以前DOS操作系统下,对磁盘文件的排序一般有3种方法:1、将磁盘文件装入内存排序,将排序结果保存到新的文件,这适用于很小的(64K以内)、不需要经常索引的文件;2、对磁盘文件按关键字进行分块排序后,形成一个索引文件。块的大小一般为512K,常采用B+树或者B-数算法,这种方法适用于需要经常索引的磁盘文件,如DBF文件;3、把磁盘文

2008-01-03 20:30:00 8559 9

原创 GDI+ for VCL基础 -- 图像显示辅助类ImageAttributes

         本文为GDI+ for VCL基础系列文章之一,主要供GDI+初学者入门参考,例子使用GDI+版本下载地址和说明见《GDI+ for VCL基础 -- GDI+ 与 VCL》。如有错误或者建议请来信:maozefa@hotmail.com        GDI+ for VCL的TGpImageAttributes是个图像显示辅助类,可以通过该类,对图像显示时的颜色调整进行各

2008-01-02 20:07:00 10055 3

原创 GDI+ for VCL基础 -- 颜色调整矩阵ColorMatrix详解

        本文为GDI+ for VCL基础系列文章之一,主要供GDI+初学者入门参考,例子使用GDI+版本下载地址和说明见《GDI+ for VCL基础 -- GDI+ 与 VCL》。如有错误或者建议请来信:maozefa@hotmail.com        ColorMatrix是个5 * 5浮点数矩阵,下面是有关资料对它的介绍:        GDI+ 提供用于存储和操作

2007-12-27 23:33:00 20906 12

原创 可嵌套的C语言异常处理机制

        C是一门古老的、面向过程的语言,相对于它的运行高效率,其开发效率是较低的,所以长期以来,C就主要被定位在系统软件的开发上,特别是在现代各种可视化编程环境下,C的应用领域也越来越窄,虽然其原因有很多,但是,相对其它现代高级语言而言,其原始的异常处理功能不能不说是低效开发的主要原因之一,如果有一套较完善的异常功能,再配上一套好的常用功能库,应该能提高其开发效率。        在现

2007-12-25 02:45:00 9214 4

原创 C语言版的单位法人代码校验函数

        多年没和统计报表打交道了,不知现在还存不存在单位法人代码,反正十年前是每个单位,无论是机关、企事业单位还是社会团体,都要求有这个代码。        当作怀旧,贴出这个十多年前C语言函数代码,现临时写了个演示程序:#include stdio.h>#include string.h>#include stdlib.h>/* 获取单位法人代码校验位 */char GetL

2007-12-21 23:44:00 3291

原创 GDI+ 在Delphi程序的应用 -- 多帧(页)图像的分解与合成

GDI+ 在Delphi程序的应用 -- 多帧(页)图像的分解与合成        在GDI+支持的各种图像格式,gif格式和tiff格式图像可包含多帧(页)图片,GDI+可以很方便的分解和合成多帧(页)图片。        下面是个简单的多帧(页)图片分解与合成例子:unit main1;interfaceuses  Windows, Messages, SysUtils, 

2007-12-21 00:14:00 7086 7

原创 GDI+ for VCL基础 -- 画笔

        本文为GDI+ for VCL基础系列文章之一,主要供GDI+初学者入门参考,例子使用GDI+版本下载地址和说明见《GDI+ for VCL基础 -- GDI+ 与 VCL》。如有错误或者建议请来信:maozefa@hotmail.com         GDI+ 提供了很多绘图方法,如直线、曲线、圆弧、矩形、椭圆、扇形、多边形以及路径线条等,这些图形都需要使用GDI+ 画笔对

2007-12-19 20:45:00 6753 3

原创 GDI+ 在Delphi程序的应用 -- 可调节的文字阴影特效

        利用GDI+输出文字阴影效果有多种方法,最简单的就是第一次输出有偏移的灰色文字,第二次输出正常文字。下面是仿C#文字输出例子里的代码片断,输出了这种带阴影的文字:  serifFontFamily := TGpFontFamily.GenericSerif;  //Load the fonts we want to use  titleFont := TGpFont.Cre

2007-12-17 23:04:00 12640 16

原创 GDI+ for VCL基础 -- 画刷之PathGradientBrush

          本文为GDI+ for VCL基础系列文章之一,主要供GDI+初学者入门参考,例子使用GDI+版本下载地址和说明见《GDI+ for VCL基础 -- GDI+ 与 VCL》。如有错误或者建议请来信:maozefa@hotmail.com         GDI+由二维矢量图形、图像和版面等三部分组成,其中的二维矢量图形的图元,包括点、线条、曲线和图形等的绘制工具就是画笔和

2007-12-15 18:05:00 11228 3

原创 GDI+ for VCL基础 -- 画刷之LinearGradientBrush

          本文为GDI+ for VCL基础系列文章之一,主要供GDI+初学者入门参考,例子使用GDI+版本下载地址和说明见《GDI+ for VCL基础 -- GDI+ 与 VCL》。如有错误或者建议请来信:maozefa@hotmail.com        GDI+由二维矢量图形、图像和版面等三部分组成,其中的二维矢量图形的图元,包括点、线条、曲线和图形等的绘制工具就是画笔和画

2007-12-14 23:37:00 13009

原创 GDI+ for VCL基础 -- 画刷之TextureBrush

         本文为GDI+ for VCL基础系列文章之一,主要供GDI+初学者入门参考,例子使用GDI+版本下载地址和说明见《GDI+ for VCL基础 -- GDI+ 与 VCL》。如有错误或者建议请来信:maozefa@hotmail.com        GDI+由二维矢量图形、图像和版面等三部分组成,其中的二维矢量图形的图元,包括点、线条、曲线和图形等的绘制工具就是画笔和画刷

2007-12-14 00:18:00 7079 2

原创 GDI+ for VCL基础 -- 画刷之HatchBrush

        本文为GDI+ for VCL基础系列文章之一,主要供GDI+初学者入门参考,例子使用GDI+版本下载地址和说明见《GDI+ for VCL基础 -- GDI+ 与 VCL》。如有错误或者建议请来信:maozefa@hotmail.com        GDI+由二维矢量图形、图像和版面等三部分组成,其中的二维矢量图形的图元,包括点、线条、曲线和图形等的绘制工具就是画笔和画刷,

2007-12-13 17:38:00 6185 2

原创 GDI+ for VCL基础 -- 画刷之SolidBrush

        本文为GDI+ for VCL基础系列文章之一,主要供GDI+初学者入门参考,例子使用GDI+版本下载地址和说明见《GDI+ for VCL基础 -- GDI+ 与 VCL》。如有错误或者建议请来信:maozefa@hotmail.com        GDI+由二维矢量图形、图像和版面等三部分组成,其中的二维矢量图形的图元,包括点、线条、曲线和图形等的绘制工具就是画笔和画刷,

2007-12-13 15:37:00 7960

原创 Delphi图像处理 -- 灰度化和灰度直方图

阅读提示:    《Delphi图像处理》系列以效率为侧重点,一般代码为PASCAL,核心代码采用BASM。    《C++图像处理》系列以代码清晰,可读性为主,全部使用C++代码。    尽可能保持二者内容一致,可相互对照。   本文代码必须包括文章《Delphi图像处理 -- 数据类型及公用过程》中的ImageData.pas单元。     常用图像的灰度化方法有最大值法、平均值法和YUV法

2007-11-29 22:59:00 10417 6

原创 Delphi版的线性回归分析

        文章《C语言版的线性回归分析函数》发布后,不少朋友留言或给我来信,询问能否提供Delphi版的线性回归分析代码,因C语言版是我以前DOS下的老代码稍作整理后发布的,所以没有现成的Delphi代码,今天比较闲,于是将C代码改写为Delphi代码贴在下面,有关的回归公式说明及例子图示可参见《C语言版的线性回归分析函数》,这里不再累叙,由于改写时间仓促,可能有错误,请不吝指出,亦可来信建

2007-11-26 19:02:00 6768 2

原创 GDI+ for VCL基础 -- GDI+ 与 VCL

陆续写了十几篇关于《GDI+在Delphi程序的应用》的文章后,应几个小友来信要求,将我所使用的GDI+ for VCL,包括Delphi和C++Builder版发布在了csdn的资源下载区。    GDI+ C语言版本同时GDI+ for VCL版本2010.7.10修改版下载地址:http://download.csdn.net/source/2737743(因疏忽,导致个别克隆方法错误,修改

2007-11-12 15:35:00 21161 25

原创 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 11626 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使用的汇编函数 -- XMS内存管理函数

         本篇给出XMS(扩充内存)内存TC函数汇编码文件,要使用XMS,必须安装驱动程序EMM386.EXE。注意,XMS与EMS(扩展内存)是2种不同的内存管理技术规范,由于它们对内存的管理范围有重叠,所以在驱动程序中应指明EMS的大小,如果全部1M外的内存全部都给了EMS,那么,XMS就只能管理UMB和HMA内存了,而这些内存还必须在DOS中配置才有,下面的配置保证了基本内存以外

2007-09-16 01:22:00 2711

原创 Turbo C使用的汇编函数 -- 鼠标管理函数

         上面2篇文章《Turbo C使用的汇编函数 -- VGA 12H模式图形函数(一)》和《Turbo C使用的汇编函数 -- VGA 12H模式图形函数(一)》给出了图形代码,本篇给出鼠标管理TC函数汇编码文件。该代码很简单,而且对速度没很高的要求,完全可用纯C/C++写,但是在DOS年代,即使速度稍有提高以及代码长度缩短,也愿意用汇编码或插入汇编;鼠标功能使用int 33h,要在

2007-09-16 00:09:00 3016 3

原创 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

原创 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 4691 1

原创 GDI+ 在Delphi程序的应用 -- 图像饱和度调整

        图像的饱和度调整有很多方法,最简单的就是判断每个象素的R、G、B值是否大于或小于128,大于加上调整值,小于则减去调整值;也可将象素RGB转换为HSV或者HSL,然后调整其S部分,从而达到线性调整图象饱和度的目的。这几种方法我都测试过,效果均不太好,简单的就不说了,利用HSV和HSL调整饱和度,其调节范围很窄,饱和度没达到,难看的色斑却出现了。而Photoshop的饱和度调整调节范

2007-09-11 20:27:00 10220 7

原创 Delphi图像处理 -- 亮度/对比度调整

阅读提示:    《Delphi图像处理》系列以效率为侧重点,一般代码为PASCAL,核心代码采用BASM。    《C++图像处理》系列以代码清晰,可读性为主,全部使用C++代码。    尽可能保持二者内容一致,可相互对照。   本文代码必须包括文章《Delphi图像处理 -- 数据类型及公用过程》中的ImageData.pas单元。          本人已经写过几篇关于亮度调整的文章,但是

2007-09-07 23:15:00 17567 25

原创 GDI+ 在Delphi程序的应用 -- 仿Photoshop的明度调整

        这几天研究了一下Photoshop的色相/饱和度命令,也就是所谓的HSB颜色模式,没完全搞明白,网上搜索也没一点结果,看了一些介绍HSB算法的文章,其实讲的就是HSV或者HSL的算法。        关于PS色相/饱和度中的色相,就不用研究了,原理和HSV或者HSL的H都是一样的。        而饱和度在-100,0,+100这三点上的效果与HSL完全一样,其它范围就有区

2007-09-04 23:00:00 6620 5

原创 Delphi2007新功能 -- 有限的栈对象

           今天使用Delphi2007,一个误输入,无意中发现Delphi2007的record类型居然能够和TObject一样定义方法和属性,而且不需要调用类似TObject.Create方法就能生成一个record对象。这是否意味着Delphi2007也能和C++一样,不仅能使用堆对象(new),也能使用栈对象(静态对象)呢?        通过实验,答案是肯定的!这使我感到很

2007-08-27 14:50:00 5269 6

原创 GDI+ 在Delphi程序的应用 -- 线性调整图像亮度

      我曾写过2篇关于GDI+图像亮度调整的文章:《GDI+ 在Delphi程序的应用 -- 调整图像亮度》和《GDI+ 在Delphi程序的应用 -- ColorMatrix与图像亮度》,前者采用GDI+的Bitmap扫描线逐点增加或减少图像像素RGB的值,后者则通过设置GDI+的ColorMatrix进行调整,但是这两种方法都属于非线性的亮度调整,优点是代码简单、速度快,缺点是在调整亮度

2007-08-25 19:38:00 6131 4

原创 Delphi图像处理 -- 图像卷积

阅读提示:    《Delphi图像处理》系列以效率为侧重点,一般代码为PASCAL,核心代码采用BASM。    《C++图像处理》系列以代码清晰,可读性为主,全部使用C++代码。    尽可能保持二者内容一致,可相互对照。   本文代码必须包括文章《Delphi图像处理 -- 数据类型及公用过程》中的ImageData.pas单元。     在图像的处理过程中,经常要用到卷积模板,如图像锐化

2007-08-22 11:21:00 9837 20

原创 Delphi程序中弹出和关闭CD-ROM

         要在Delphi程序中控制CD-ROM的弹出和关闭,可以利用MMSystem.pas单元的MCI(Media Control Interface)函数。有2个函数可以达到同样的效果。一个是mciSendCommand函数,另一个是mciSendString函数。下面分别用这2个函数写的OpenCDDrive函数。        1、使用mciSendCommand:f

2007-08-15 00:01:00 1858

原创 Delphi组件的偷梁换柱

    在使用Delphi可视化设计时,有时觉得某个元件缺少点自己需要的功能或者属性,或者需要的功能或者属性是protected,没法直接得到。比如TPanel,是个容器类组件,其功能是用来放置其它窗口组件和图形组件,但是,如果想在它的界面上画点什么就不那么方便了,既没有OnPaint事件,也不能直接获取其Canvas(该属性是protected)。    碰到这类问题,我们采用的策略一般有2

2007-08-06 15:33:00 4237 2

原创 郁闷的汇编码

    我是个编程业余爱好者,虽说是业余,也有近20年了,以前在DOS下编程,计算机速度很慢,内存、硬盘容量也有限,必须对程序代码精益求精,稍大点的程序还得兼顾代码长度和运行速度,否则,你的程序可能跑不起来。    我以前主要用C编程,虽然效率较高,但为了代码长度和速度,关键的代码我喜欢用汇编,相同的算法和流程,ASM和C无论是代码长度和运行速度,都没得比,而且有些特殊的位运算,ASM比C方便多了

2007-07-27 15:52:00 3209 6

原创 GDI+ 在Delphi、C++Builder程序的应用 -- IStream

        GDI+的Image及派生类中涉及到IStream流,在Delphi和C++Builder中广泛使用的TStream不能直接作为参数进行传递,VCL提供了一个TStreamAdapter类,用于把VCL流TStream转换为IStream。TStreamAdapter的构造过程原型如下:  constructor Create(Stream: TStream; Ownershi

2007-07-12 00:35:00 10749 2

原创 GDI+ 在Delphi程序的应用 -- Matrix应用心得

        关于GDI+的几何变换类Matrix的理论和应用有很多书籍和文章介绍,本文只是谈一点自己的应用心得。        使用GDI+的Matrix类,可以很方便的进行提供了Rotate(旋转)、Scale( 缩放)、Shear(切变)等线性变换和Translate(平移),还可以通过这几个基本的变换组成更复杂的复合变换。通过变换后的图形及原点坐标变化很大,如下面的语句:  g.

2007-07-10 01:09:00 5928

Delphi图像处理单元

Delphi图像处理单元,有部分例子,其原理可参考我的BLOG。 水平有限,错误在所难免,望来信指正。

2015-01-03

Gdiplus for Delphi 主文件单元

修改了某些对构造方法CreatClone调用语句中,未用返回值类型作限定的BUG

2011-06-26

GDI+ for VCL and GDI+ for C (2010.10.7)

GDI+ for VCL and GDI+ for C语言2010.10.7最新修改版。 如有错误,请反馈,不胜感激!

2010-10-07

Gdiplus C语言版本

这是我改写的Gdiplus的C语言版本。用VS2005和BCB做过一些主要的测试,例子和可能出现的错误解决办法请关注我的BLOG:http://blog.csdn.net/maozefa

2009-11-10

GDI+ for VCL

GDI+ for Delphi,GDI+ for C++Builder原资料Gdiplus for VCL(Delphi and C Builder)的修改版。

2007-11-29

Gdiplus for VCL(Delphi and C Builder)

说明:本资源BCB版BCB2007正常,但BCB6下有兼容错误,请下载修改后资源:http://download.csdn.net/source/297704 或者按下面文章作些修改:http://blog.csdn.net/maozefa/archive/2007/11/12/1880484.aspx

2007-11-08

GDI+ SDK 参考

经典的GDI+ SDK文档,例子为C++

2007-08-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除