易截截图软件、单文件、免安装、纯绿色、仅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 string类型转integer时出错的检测

procedure TForm1.Button1Click(Sender: TObject);
Var
  Num: Integer;
Begin
  Try
    Num:=StrToInt(Edit1.Text);
    Edit2.Text:=IntToStr(Num*Num);
  Except
    On EConvertError Do   ShowMessage(Edit1.Text+'无法转成整数!'); ......

Delphi 完全时尚手册之 Visual Style 篇

    这里先说说两个概念:Theme(主题)和 Visual Style 。Theme 最早出现在 Microsoft Plus! for Windows 95 中,是 Windows 中 Wallpaper、Cursors、Fonts、Sounds 、Icons 等的设置值集合。Visual Style 在 Windows XP 中才被引入,Visual Style 规定了 Contorls 的外观,另外还包括使用这些外观的一套 API ......

Delphi图像处理

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

delphi 向webbrowser打开的网页中插入js命令

unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, OleCtrls, SHDocVw, ExtCtrls,MSHTML;
type
TForm1 = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    Edit1: TEdit;
&nb ......

delphi TListView的使用


ListView1.Items 为标准 Tlistitems类
ListView1.Items
(1)赋值
with ListView1.Items.Add do
begin
Caption:=caption; //添加第一项
SubItems.add(aaaaa); //添加后面数据
SubItems.add(1234);
SubItems.add(1234);
end; //一定要使用WITH结构.
(2)取值
listview1.Items.Item[i].Caption 取得某条数据标题
l ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号