自定义博客皮肤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)
  • 收藏
  • 关注

原创 简洁代码一定比复杂代码效率高吗?

简洁代码一定比复杂代码效率高吗?

2011-03-10 23:38:00 21729 162

原创 Delphi图像处理 -- 平面几何变换类

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

2010-10-27 14:57:00 8081 9

原创 C++图像处理 -- 平面几何变换类

阅读提示:     《C++图像处理》系列以代码清晰,可读性为主,全部使用C++代码。    《Delphi图像处理》系列以效率为侧重点,一般代码为PASCAL,核心代码采用BASM。    尽可能保持二者内容一致,可相互对照。    本文代码必须包括《C++图像处理 -- 数据类型及公用函数》文章中的BmpData.h头文件。     有关图像的平面几何变换,现有的教程、计算机图书以及网上的

2010-10-10 14:52:00 10500 17

原创 Delphi图像处理 -- 设置伽玛

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

2010-09-23 19:27:00 4115

原创 Delphi图像处理 -- 图像色阶调整

在Photoshop中,图像色阶调整应用很广泛,本文介绍的图像色阶调整过程与Photoshop处理效果基本一致。

2010-06-02 22:57:00 7449 8

原创 Delphi图像处理 -- 高斯模糊

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

2010-05-10 21:58:00 8884 10

原创 精彩代码赏析 -- 有授权许可的字符串拷贝函数源码

文章摘要:    一段看上去“貌不惊人”的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 5244 4

原创 Delphi获取控件界面图像“新招”

    众所周知,Delphi是一种可视化编程方式的软件,在某些Delphi软件中,常常需要获取一些界面控件的图像,如TImage、TPaintBox、TPanel等控件。获取这些界面控件图像时,一般都是采用直接截屏的办法,但直接截屏的办法有一个缺陷,就是当这些控件完全或者部分被遮挡后,并不能获取其完整界面的图像。对TImage的截屏更是受到限制,因为除了BMP类型图像(即TImage.Pictu

2009-11-22 23:00:00 9526 3

原创 实现任意角度渐变填充(三) -- 多色渐变填充文字

   本文介绍怎样实现任意角度的文字多色渐变填充。    因为文字填充区是由若干个不规则的图形组成的,因此渐变填充文字比渐变填充矩形(见《实现任意角度渐变填充(一) -- 双色渐变填充矩形》和《实现任意角度渐变填充(二) -- 多色渐变填充矩形》)要复杂一些。需要先建立一个临时位图,以黑底白字形式将文字画在临时位图上,然后以临时位图数据为掩码图,对文字填充区域进行填充,如果掩码图某坐标的象素值

2009-11-18 13:56:00 5211 2

原创 实现任意角度渐变填充(二) -- 多色渐变填充矩形

    在《实现任意角度渐变填充(一) -- 双色渐变填充矩形》一文中,比较详细的阐述了任意角度双色渐变填充矩形的原理,同时也用Delphi实现了填充过程,本文在此基础上,继续实现对矩形的任意角度多色渐变填充。    其实,任意角度多色渐变填充与任意角度双色渐变填充在实现原理上没有什么不同,填充过程也是完全相同的,只需要修改一下设置颜色缓冲区的代码,将按长度比例计算2种颜色缓冲区各元素颜色值,

2009-11-17 11:47:00 5120 2

原创 实现任意角度渐变填充(一) -- 双色渐变填充矩形

    在实现任意角度双色渐变填充矩形之前,先了解一下简单实现横向或者纵向的双色渐变填充矩形的过程:首先按2种颜色在x(或者y)方向的按长度比例填充一条直线,然后,不断移动y(或者x)坐标,反复复制该直线,直到达到矩形的高(宽度),如此就实现了整个矩形的填充过程。按照这个原理,同样也可实现矩形的任意角度双色渐变填充,只不过比较麻烦,我们先按以下思路来实现:    1、按给定的渐变角度,计算出矩

2009-11-16 21:19:00 9406 4

原创 C语言版GDI+应用例子 -- 制作水印图片

    本文介绍一个利用C语言版GDI+制作水印图片的例子,下面是程序代码:#include "../../SampleCode/comcode/Application.h"#pragma hdrstop#define ID_SAVE 101PGpBitmap bitmap;PGpBitmap photo;PGpBitmap watermark;INT

2009-11-15 11:30:00 7146

原创 C语言版GDI+应用例子 -- ColorMatrix

    本文例子展示GDI+的ColorMatrix的几种经典应用:#include "../../SampleCode/comcode/Application.h"#pragma hdrstop#define ID_REASE 100#define ID_ALPHA 101#define ID_BRIGHT 102#define ID_GRAY 103#de

2009-11-11 18:23:00 2943 1

原创 C语言版GDI+应用例子 -- 文字

    本文是使用C语言版GDI+仿C#文字绘制的例子代码:#include "../../SampleCode/comcode/Application.h"#pragma hdrstopWCHAR flowedText1[] = L"I went down to the St James Infirmary,/n /Saw my baby there,/n /S

2009-11-11 18:11:00 2862

原创 C语言版GDI+应用例子 -- 画笔

    GDI+ 提供了很多绘图方法,如直线、曲线、圆弧、矩形、椭圆、扇形、多边形以及路径线条等,这些图形都需要使用GDI+ 画笔对象。本文是个使用GDI+画笔画各种线段的例子:#include "../../SampleCode/comcode/Application.h"#pragma hdrstopvoid DrawAlignmentRect(PGpGraphics g,

2009-11-11 17:56:00 4100 2

原创 C语言版GDI+应用例子 -- 画刷

    GDI+提供了SolidBrush(实色刷)、HatchBrush(阴影刷)、TextureBrush(纹理刷)、LinearGradientBrush(渐变刷)和PathGradientBrush(路径刷)等五种画刷,在GDI+的C语言版本中,这些画刷的方法都以在原C++类类名为前缀,其中的LinearGradientBrush和PathGradientBrush分别简化为LineBru

2009-11-11 11:40:00 11993 3

原创 在C语言Windows应用程序中使用GDI+

    GDI+是C++中常用的一种图形图像工具,VB、Delphi等语言也移植了GDI+,.net的诸多语言甚至完全采用GDI+作为绘制其界面。    在Winsows系统下,几乎所有的API都是直接针对C语言的,除C/C++可直接使用这些API外,其它各种语言都必须移植这些API方法,而唯独GDI+,微软提供的Gdiplus头文件,从类型定义到方法接口,都是针对C++写的,这就使得C语言没法使

2009-11-10 22:32:00 11275 6

原创 Delphi图像处理 -- 色相/饱和度调整

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

2009-11-06 23:11:00 5009 2

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

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

2009-11-06 22:55:00 6762 3

原创 Delphi图像处理 -- 中值滤波

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

2009-11-06 13:55:00 4887 8

原创 Delphi图像处理 -- 设置图像关键颜色

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

2009-11-05 20:47:00 4572 3

原创 Delphi图像处理 -- 平面几何变换(下)

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

2009-11-03 20:46:00 7440 5

原创 Delphi图像处理 -- 获取窗口或设备的图像数据

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

2009-11-02 13:22:00 6807 1

原创 Delphi图像处理 -- 图像翻转(镜像)

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

2009-11-01 11:12:00 7455 2

原创 Delphi图像处理 -- 图像显示

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

2009-10-30 11:16:00 10898 1

原创 Delphi图像处理 -- 图像合成

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

2009-10-29 15:15:00 9930 8

原创 Delphi图像处理 -- 平面几何变换(上)

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

2009-10-28 11:57:00 8923 11

原创 Delphi图像处理 -- 图像像素结构与图像数据转换

    《Delphi图像处理 -- 数据类型及内部过程》一文中定义了基本的图像数据类型及一些内部过程,本文进一步将Delphi常用的图像类型转换为图像处理所需的数据结构,为具体的Delphi图像处理过程作准备,同时也要将处理好的图像数据转换为Delphi的常用图像类型。《Delphi图像处理》系列除图像数据转换过程外,其它图像处理过程都统一使用32位ARGB像素格式。    一、数据格式转换

2009-10-27 21:41:00 9777 8

原创 Delphi图像处理 -- 数据类型及公用过程

阅读提示:    《Delphi图像处理》系列以效率为侧重点,一般代码为PASCAL,核心代码采用BASM。    《C++图像处理》系列以代码清晰,可读性为主,全部使用C++代码。    尽可能保持二者内容一致,可相互对照。《Delphi图像处理》系列修改说明(2012.1.9)     在整理、规划《Delphi图像处理》系列时,我确确实实是把每篇文章都作为这个系列的一部分来安排的,但文章陆续

2009-10-27 13:04:00 15160 16

原创 Delphi图像处理 -- 真彩色图像转换为低色彩图像

    特点:    1、真彩色图像转换为单色、16色、256色及16位(555和565)彩色图像;    2、可选的抖动仿色功能,使图像转换质量得到了很大提高;    3、转换256色索引图像时,使用16位映射表匹配调色板(可选),使转换速度得到了大幅度提高;    4、采用八叉树节点获取索引图像调色板时,使用了图像像素样本进行计算(可选),不仅提高了处理速度,而且也可使图像中的

2009-10-14 21:53:00 7553 8

原创 GDI+在Delphi程序的应用 – 真彩色图像转索引图像

    最近有几张真彩色图片需要转换为GIF图片,直接用GDI+位图转换存储效果太差,网上搜索半天,也没找到完全合适的,有关Delphi语言和GDI+转换的详细资料更是没发现,只好自己写了几个Delphi类,发表在这里供大家参考。    下面是几个真彩色转索引图像类的完整代码:type TImageData = packed record Width: Integer;

2009-09-24 23:30:00 4746 6

原创 使用GDI+位图数据扫描线处理图像的小技巧

    在GDI+图像处理中,我们经常利用BitmapData结构对图像数据扫描线进行操作,在我的大部分BOLG文章中,都使用了这个方法。GDI+位图通过其LockBits方法和UnlockBits方法,分别用来锁定(获取)和解锁(释放)BitmapData数据,我们一般都在这2个方法之间操作图像数据扫描线,如: Bitmap *bmp = new Bitmap(L"d://001-1.jpg

2009-09-09 01:32:00 5358 4

原创 C++图像处理 -- 线性亮度/对比度调整

阅读提示:    《C++图像处理》系列以代码清晰,可读性为主,全部使用C++代码。    《Delphi图像处理》系列以效率为侧重点,一般代码为PASCAL,核心代码采用BASM。    尽可能保持二者内容一致,可相互对照。    本文代码必须包括《C++图像处理 -- 数据类型及公用函数》文章中的BmpData.h头文件。     本文代码是在《C++图像处理 -- 亮度/对比度调整》基础上,

2009-08-28 14:36:00 19121 16

原创 GDI+在Delphi程序的应用 – Photoshop色相/饱和度/明度功能

    本文用GDI+实现Photoshop色相/饱和度/明度功能,参照我的其它有关GDI+在 Delphi程序的应用的文章,代码也可供TBitmap使用。    有些人不喜欢,或者不太懂Delphi的BASM代码,所以本文给出纯PAS代码。须说明的是,纯PAS代码效率较低,不适合实际应用。喜欢C/C++的,可以看本人文章《C++实现Photoshop色相/饱和度/明度功能》,除了语言不同,其

2009-05-07 13:43:00 5354 2

原创 C++实现Photoshop色相/饱和度/明度功能

    本文用C++实现Photoshop色相/饱和度/明度功能,界面程序使用BCB6;图片操作采用GDI+。代码也可适用于其它C/C++编译器(可能要稍作修改)。    有关Photoshop饱和度调整原理可参见《GDI+ 在Delphi程序的应用 -- 图像饱和度调整》,明度调整原理可参见《GDI+ 在Delphi程序的应用 -- 仿Photoshop的明度调整》。    色相/饱和度

2009-05-06 20:42:00 11482 18

原创 Delphi图像处理 -- 颜色矩阵变换

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

2008-09-08 21:01:00 7840 4

原创 GDI+ ColorMatrix的完全揭秘

      无论是用何种语言,只要使用过Windows的GDI+的人对ColorMatrix都不陌生,我的BLOG文章中也多次提到过,并在《GDI+ for VCL基础 -- 颜色调整矩阵ColorMatrix详解》一文中对其功能作了较为详细的讲解,虽然自认对ColorMatrix使用已经相当熟练,但对其原理也是知其然而不知其所以然。直到前几天有位朋友就ColorMatrix实现图像去反功能不

2008-09-08 01:41:00 12049 14

原创 Delphi图像处理 -- 填充浮雕

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

2008-09-03 23:20:00 7982 17

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

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

2008-09-02 08:20:00 4801 4

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关注的人

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