易截截图软件、单文件、免安装、纯绿色、仅160KB

Delphi图像处理

    Delphi的TCanvas以及派生类提供了显示TGraphic图像的方法Draw,其实这个方法本身并没有显示图像的功能,只是反过来调用了一下TGraphic的Draw方法。TGraphic本身是个抽象类,其Draw方法也是个纯虚方法,所以TGraphic的所有派生类必须提供一个具体的Draw方法。TGraphic的主要派生类TBitmap也有一个Draw方法,但是该方法只能利用其Transparent属性显示透明背景图像,而不能正确显示带Alpha通道的32位图像,即使Delphi2009以上版本的TGraphic增添了一个SupportsPartialTransparency属性,但TBitmap也还是没法直接显示ARGB像素格式的图像,因为TBitmap调用的是Windows API的AlphaBlend函数,该函数似乎只能显示PARGB格式像素的图像,而且TGraphic的SupportsPartialTransparency属性还是只读性质的。
    GDI+的TGpGraphics的系列DrawImage方法画ARGB32位图像倒是很好的,但如果图像真的含Alpha信息时,显示的速度却是较慢,大家可以用2张较大的图片试一下,一张含Alpha,一张不含Alpha,对比一下就知道了。
    因为本系列图像处理过程中有多个方法会使Alpha分量发生变化,即使该图像原来不含Alpha信息,所以有必要写图像显示过程。而且,如果在应用程序中只是需要显示处理过的图像,就不必再将TImageData类型转换为TGraphic或者TGpBitmap了,直接使用本文的显示过程无疑是很方便的。
    本文的图像显示过程是利用图像合成过程(见《Delphi图像处理 -- 图像合成》)、图像缩放过程《Delphi图像处理 -- 图像缩放》及几个Windows API来完成的,下面是具体代码:
过程定义:
// 画图像数据到Canvas,Alpha为图像的不透明度(0 - 1)。
procedure DrawImage(Canvas: TCanvas; x, y: Integer;
Data: TImageData; Alpha: Single = 1.0); overload;
// 拉伸画图像数据到Canvas,Alpha为图像的不透明度(0 - 1)。
procedure DrawImage(Canvas: TCanvas; x, y, Width, Height: Integer;
Data: TImageData; Alpha: Single = 1.0); overload;
procedure DrawImage(Canvas: TCanvas; LayoutRect: TRect;
Data: TImageData; Alpha: Single = 1.0); overload;
procedure DrawImage(Canvas: TCanvas; LayoutRect: TGpRect;
Data: TImageData; Alpha: Single = 1.0); overload;
实现代码:
procedure DrawImage(Canvas: TCanvas; x, y: Integer; Data: TImageD


相关文档:

delphi KOL 体系

一、KOL是什么?KOL能做什么? MCK是什么?MCK能做什么?
KOL是一套对象库,免费而且开放源代码,大家可以http://www.kolmck.net/去下载到
它。它能够使Delphi编出尺寸非常小的32位Windows图形用户界面的应用程序。
目前支持的Delphi版:Delphi6,Delphi5,Delphi4,Delphi3和Delphi2。
使用KOL在D2-D5中编写的最小图形界面程序 ......

知识小结(Delphi)

1) Error loading midas.dll     没有注册midas.dll 运行RegSver32.exe midas.dll
2)Result := GetProcAddress(FGDIPlusLibrary, PChar(ProcName));编译 出现这样的问题,应该是设置方面的问题,Project->Options->Complier->Hugestrings 钩上就ok了!
3) TCheckListBox有个itemEnable ......

Delphi图像处理

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/maozefa/archive/2009/10/28/4737584.aspx
图像缩放是最常用的图像处理,在图像拉伸和取得图像略图中都要用到。图像缩放质量的好坏与图像像素插值方式有关,本文定义了常用的3种插值方式,即临近插值、线性插值和双立方插值方式:
view plaincopy to clipboardpr ......

delphi中Webbrowser问题收集

 delphi中Webbrowser问题收集
获得网页中变量值     htm中<script> var currID=123</script>     程序中可以这么调用 id := Form1.WebBrowser1.OleObject.Document.script.currID     值得说明的是,变量可以是javascript定义的,也可以是vbs ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号