- 博客(132)
- 资源 (7)
- 收藏
- 关注
原创 GDI+ 在Delphi程序的应用 -- 多帧(页)图像动画播放
GDI+支持多种图像格式的操作,其中的gif和tiff格式图像可包含多帧(页)图片,在一般的显示中,只能显示图像的第一帧(页)图片。.NET专门有个ImageAnimator类,用来播放此类图像,在Delphi中,我们也可利用GDI+编制自己的多帧(页)图像动画播放类。 笔者写了一个多帧(页)图像动画播放类,为了代码重用,先写了一个基类TImageAnimatBa
2007-07-06 14:22:00 5070 2
原创 GDI+ 在Delphi程序的应用 -- FontCollection
GDI+有个FontCollection类,一般情况下很少用到,很多人甚至连这些类是干什么的都不知道。FontCollection本身是个基类,它有两个派生类InstalledFontCollection和PrivateFontCollection,这两个类用好了,可以起到意想不到的作用。 InstalledFontCollection用来枚举当前系统已经安装的
2007-07-02 00:29:00 4889 2
原创 GDI+ 在Delphi程序的应用 -- ColorMatrix与图像亮度
年初,我写了一篇关于GDI+亮度调整的文章,见《GDI+ 在Delphi程序的应用 -- 调整图像亮度》,采用的是扫描线逐点改变,当时有网友评论时提出是否可以ColorMatrix进行调整,我觉得图像像素值上下限不好控制,加之没时间没去研究,今天,我却发现该网友提出的方案居然是切实可行的。改变图像亮度,实际就是对像素点的各颜色分量值作一个平移,使用ColorMatrix进行平移是个轻而
2007-06-19 11:55:00 4221
原创 重新组织编写Delphi的MD2、MD4、MD5类
在Delphi中,由于Indy的TIdHashMessageDigest类有BUG(见我的《要谨慎使用Indy的TIdHashMessageDigest类》一文),只好重新借Indy代码重新组织改写了一下,经过简单测试正常,源码如下,如有错误请指正:unit MessageDigest;interfaceuses SysUtils, Classes;type
2007-06-15 13:37:00 4964 4
原创 Delphi版的Base64转换函数(修改版)
前几天,兴趣所致,写了2个Delphi版的Base64转换函数,见《Delphi版的Base64转换函数》一文。后来觉得这些函数使用不够灵活,所以重新写了几个放在这里,核心的转换代码用BASM写的(不知是否快一点,不过,我觉得用汇编写这种代码好像比Pascal还容易些,因为有些二进制操作,高级语言不方便,同时使用汇编也能使算法更合理,可比较《Delphi版的Base64转换函数》代码和汇
2007-06-14 23:46:00 18853 35
原创 要谨慎使用Indy的TIdHashMessageDigest类
前几天,本人写了几个Delphi的Base64转换函数,并写了一篇博客文章《Delphi版的Base64转换函数 》,该文中,本人用Indy中的TIdHashMessageDigest5类,通过MD5的Hash验证Base64编码和解码的正确性。事后,本人想验证文件的Base64编码和解码,并重新写了Base64转换函数,对整个文件流的Base64编、解码无疑也是正确的,见以下代码(其中
2007-06-14 23:16:00 6365 1
原创 Delphi版的Base64转换函数
Base64是网络上最常见的用于加密传输8Bit字节代码的编码方式之一, 网上搜索,.NET、C/C++的代码到处都是,可没找到Delphi的,本人写了2个函数,可供访问者参考使用。(注:后来,我觉得这2个函数灵活性太差,进行了修改,见《Delphi版的Base64转换函数(修改版) 》)unit Base64;interfaceuses SysUtils;function Str
2007-06-07 12:23:00 11699 14
原创 语法?BUG?
procedure TForm1.Button1Click(Sender: TObject);var v: ^Integer; p: ^Integer; i, Len: Integer;begin Len := 6; GetMem(v, Sizeof(Integer) * Len); p := v; for i := 0 to 5 do begin p^ := i * i;
2007-02-01 12:38:00 1829 7
原创 GDI+ 在Delphi程序的应用 -- 图像二值化
图像的二值化,无论是理论,还是方法都很多,网上搜索一大堆,本人水平有限,没法完全搞清楚,只在这里针对GDI+在Delphi中如何做一般二值化处理,写一个简单例子。 其实,这个例子在昨天本人发表的《GDI+ 在Delphi程序的应用 -- ColorMatrix与图像灰度化 》中已经给出了基本的代码,只要在其上加一个参数和一句代码就行了: // 灰度或者二值化彩色图像
2007-01-30 23:27:00 4954
原创 GDI+ 在Delphi程序的应用 -- 图像的透明显示技巧
GDI+ 在Delphi程序的应用 -- 图像的透明显示技巧 在Delphi中,通过设置TBitmap的Transparent、TransparentColor和TransparentMode属性,可以很方便的实现图像中某种颜色的透明显示;也可以采用某种算法对图像像素逐点计算,实现图像各种形式的透明显示。 使用GDI+,可以比常规方式更方便、快捷的实现图像各种形式的透明
2007-01-30 21:09:00 15135 13
原创 GDI+ 在Delphi程序的应用 -- ColorMatrix与图像灰度化
图像由彩色转化为灰度的过程叫灰度化,也叫去色。 彩色图像灰度化的原理很简单,就是按某种计算方法将图像各像素的R、G、B分量取成同样的值即可。计算方法有几种: 1、每个像素R、G、B各分量的值为该象素R、G、B的平均值; 2、每个像素R、G、B各分量的值为该象素R、G、B中最大值; 3、按YUV颜色空间原理,每个像素R、G、B各分量的值为:Y = 0.
2007-01-29 14:15:00 5387 7
原创 GDI+ 在Delphi程序的应用 -- 调整图像亮度
GDI+ 在Delphi程序的应用 -- 调整图像亮度 调整图像的亮度可以有很多方法,最常用的方法就是对图像像素点的R、G、B三个分量同时进行增加(减少)某个值,达到调整亮度的目的。我在这里使用GDI+图像的扫描线来处理,核心处理采用了2个相同的过程,一个是Pascal过程,一个是嵌入汇编过程,通过比较,对小的图像几乎没有什么区别,对比较大的图像处理还是有一定的区别(具体测
2007-01-28 19:24:00 8065 5
GDI+ for VCL and GDI+ for C (2010.10.7)
2010-10-07
Gdiplus C语言版本
2009-11-10
GDI+ for VCL
2007-11-29
Gdiplus for VCL(Delphi and C Builder)
2007-11-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人