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图像处理 -- 图像缩放》、《Delphi图像处理 -- 图像旋转》及几个Windows API来完成的,下面是具体代码:
文章中使用GDI+版本下载地址和说明见《GDI+ for VCL基础 -- GDI+ 与 VCL》。
文章中所用数据类型及一些过程见《Delphi图像处理 -- 数据类型及内部过程》和《Delphi图像处理 -- 图像像素结构与图像数据转换》。
尽管我十分努力,但水平有限,错误在所难免,欢迎指正和指导。邮箱地址:
maozefa@hotmail.com
说明:本文代码于2010.5.20重新修订过,增加了一个旋转显示过程。
分享到:
相关推荐
数字图像处理----空间滤波----非线性滤波----梯度边缘增强----Delphi源代码 都是自己多年的珍藏了,是自己独立写的。 不是抄的哦。
delphi图像处理
Delphi图像处理单元,有部分例子,其原理可参考我的BLOG。 水平有限,错误在所难免,望来信指正。
本人的关于delphi7的图像处理源代码、毕业论文、演示文稿、可执行exe程序。是不可多得的好资料!
DELPHI数字图像处理 源码 为Delphi数字图像处理及高级应用的配套资料
DELPHI图像处理及高级应用PDF及源码
《DELPHI数字图像处理》 附盘 喜欢图像处理的朋友可以下载下来看看
Delphi数字图像处理及高级应用
多个Delphi图像处理的例子,8.1 更换桌面8.3 jpg文件加密。。。。。。。。。
做图像处理、模式识别、车牌识别等特有用,含源码。亲测可用
Delphi图像处理的20个实用小程序,简单实用,delphi开发
Delphi图像处理灰度化、二值化、滤波,Delphi开发,简单实用
图像处理通用功能软件包delphi代码,包括了边缘检测,等处理方法-Image processing functions generic delphi code package, including edge detection, treatment methods, etc.
Delphi图像处理方法,直方图拉伸,亮度,对比度,图像旋转,二值化
本书详细介绍了利用Delphi进行图像处理的技术,常用的图像格式,以及Delphi图像处理的常用方法Scanline。本书共8章,内容包括图像的基本概念、图像的点运算、图像的几何变换、图像的颜色系统、图像的增强、图像代数...
Delphi数字图像处理及高级应用 PDF
Delphi数字图像处理及高级应用原价:¥40.00 科学出版社出版出版日期:2003-9-01作者:刘骏ISBN:7030121635
delphi虽然暂时没落.但本人一见钟情.加入初学者行业.但资料方面网上越来越少,在这里我会把我收集到的书籍和一些源代码一一分享出来.和大家一起学习.
《Delphi 数字图像处理及高级应用》附书源码 1.4 图像的格式 转换 1.5 图像浏览器 ...... 8.25 wavelet_JPEG2000