《Delphi图像处理 -- 数据类型及内部过程》一文中定义了基本的图像数据类型及一些内部过程,本文进一步将Delphi常用的图像类型转换为图像处理所需的数据结构,为具体的Delphi图像处理过程作准备,同时也要将处理好的图像数据转换为Delphi的常用图像类型。《Delphi图像处理》系列除图像数据转换过程外,其它图像处理过程都统一使用32位ARGB像素格式。
一、获取TGraphic的图像数据。
TGraphic是Delphi的图像类基类,特别是其派生类TBitmap,更是Delphi最重要,也是最基础的图像类,它封装了Windows位图的常用操作,其它TGraphic派生类(包括一些第三方派生类)都可以转换为TBitmap,因此,获取了TBitmap的图像数据,也就获取了TGraphic派生类的图像数据。
有多个方法获取TBitmap的图像数据,一是直接在TBitmap的扫描线上操作,其好处是图像处理后直接反映在TBitmap中,不必再进行转换,缺点是由于本图像处理系列采用了统一的32位ARGB像素格式,所以必须设置TBitmap.PixelFormat属性,如此一来,势必破坏了原图像像素格式,而且除原32位图像外,实际上也进行了一次图像数据拷贝;二是不破坏TBit ......
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[Index] := False属性控制某一项不可改
4) 批量根据AText是否为空判断颜色
procedure TM4_FaultModifyForm.SetColor(ALabel: array of TLabel;
AText: array of string);
var
VIndex: Integer;
begin
for VIndex := Low(AText) to High(AText) do
if AText[VIndex] = '' then
ALabel[VIndex].Font.Color := clBlue
else
ALabel[VIndex].Font.Color := clWindowText;
end;
5) 界面网格修改记录后要重新定位到该条记录用dsQuery.DataSet.Locate('file_no', VFileNo, []);
6) Could not convert variant of type(Null) into type (string) 加VarToStr
7) 修改网格的DataController.Summary.Options.soSelectedRecords := True时竟然会出现这样的异常‘List index out of bounds(8)’
8) 新建或修改时间时,应该对控件 ......
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/maozefa/archive/2009/10/28/4737584.aspx
图像缩放是最常用的图像处理,在图像拉伸和取得图像略图中都要用到。图像缩放质量的好坏与图像像素插值方式有关,本文定义了常用的3种插值方式,即临近插值、线性插值和双立方插值方式:
view plaincopy to clipboardprint?
type
// 插值方式: 缺省(线性插值),临近,线性,双立方
TInterpolateMode = (imDefault, imNear, imBilinear, imBicubic);
type
// 插值方式: 缺省(线性插值),临近,线性,双立方
TInterpolateMode = (imDefault, imNear, imBilinear, imBicubic);
具体的缩放及其用到的插值过程代码如下:
view plaincopy to clipboardprint?
过程定义:
// 设置双立方插值的斜率。缺省值为-0.75
procedure SetBicubicSlope(const Value: Single);
// 缩放图像,IpMode插值方式
procedure ImageScale(Dest: TImageData; const Source: TImageData;
&n ......
图像缩放是最常用的图像处理,在图像拉伸和取得图像略图中都要用到。图像缩放质量的好坏与图像像素插值方式有关,本文定义了常用的3种插值方式,即临近插值、线性插值和双立方插值方式:
type
// 插值方式: 缺省(线性插值),临近,线性,双立方
TInterpolateMode = (imDefault, imNear, imBilinear, imBicubic);
具体的缩放及其用到的插值过程代码如下:
过程定义:
// 设置双立方插值的斜率。缺省值为-0.75
procedure SetBicubicSlope(const Value: Single);
// 缩放图像,IpMode插值方式
procedure ImageScale(Dest: TImageData; const Source: TImageData;
IpMode: TInterpolateMode = imDefault); overload;
// Source分别按比例ScaleX和ScaleY缩放到Dest的(x,y)坐标,IpMode插值方式
procedure ImageScale(Dest: TImageData; x, y: Integer; const Source: TImageData;
ScaleX, ScaleY: Single; IpMode: TInterpolateMode = imDefault); overload;
// TGraphic对象缩放到Dest
procedure ImageScale(Dest: TImageData; const Source: TGraphic;
IpMode: TInterpolateMode = imDe ......
delphi获取Windows系统的进程运行信息
自从出现windows系统以来,各种各样的软件层出不穷。购买或者免费下载以后,轻轻点击Install或者Setup以后,稍作些许简单配置就完成安装的整个过程。显然这给用户带来了许多方便,但对用户来说这些软件似乎是个"黑匣子",展现在用户面前的仅仅是华丽的外表和简洁的操作,至于软件运行过程中调用了哪些文件和模块文件就无法知道了。或许真正希望了解这些的用户并不是很多,甚至对某些用户来说是不必要的,但是对于一个系统安全管理员来说这是一件很重要的事情。本文重点阐述如何获取系统的所有进程以及进程运行过程中所调用的模块文件(象EXE、DLL文件),实际是对Windows系统所提供的任务管理器进一步完善,开发工具采用Delphi语言。
一、函数介绍
在Windows系统中动态链接库kernel32.dll提供了获取和处理系统进程的许多接口函数,Delphi语言把这些函数接口封装到Tlhelp32.pas中,供Delphi用户开发过程调用。要详细了解相关知识可以查阅Tlhelp32.pas原文件和Windows SDK提供的帮助文件。其中同本文涉及的接口函数主要有CreateToolhelp32Snapshot、process32first、process32next、module32first、module32next五个函数以及TMODU ......
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, OleCtrls, SHDocVw;
type
TForm1 = class(TForm)
WebBrowser1: TWebBrowser;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button2Click(Sender: TObject); & ......