Delphi中图形图像与多媒体技术
Delphi 第12章 多媒体技术
程序的设计界面
2.设定项目中控件的属性(见表) (1)设置分组框GroupBox控件的属性 (2)设置Button控件的属性 (3)设置Label控件的属性 (4)设置SpinEdit控件的属性(见表) (5)设置ListBox控件的属性(见表) ( 6 )设置 OpenDialog 控件的属性(见表) (7)Animate控件的常用属性和方法
图片浏览及其保存
对于已经制作的简易图片浏览器,可以进行试运行: (1)按“F9”键运行。 (2)单击“打开文件”按钮,出现一个文件路径搜索 框如图所示。 (3)找到浏览的图片文件,其显示效果如图所示。
图片文件搜索
Animate控件位于控件板的Win32页中,如图所示。
Animate控件的位置
使用Animate控件实现
动画播放的实例程序 1.向设计窗体中添加控件 如图所示,在窗体的上半部分添加三个 TGroupBox控件、一个TOpenDialog控件、七 个TButton控件、三个TLabel控件、三个 TSpinEdit控件,在窗体下半部分添加一个 TListBox控件和一个Animate控件。其中, Animate控件的位置应根据运行程序时,需要 出现的位置来放置。
MediaPlayer1的属性设置
属性 AutoEnable AutoOpen AutoRewind EnableButtons. btRecord EnableButtons. btEject DeviceType 属性值 True False True False False dtAutoSelect
图片浏览器的窗体及控件布局
控件的属性设置
本范例所使用的控件属性设置如表所示。 (1)Image1 (2)Opendialog1和Savedialog1
delphi7编程技巧与实例精解之图形图像(修正重绘变形)
delphi7编程技巧与实例精解之图形图像(修正重绘变形)unit Unit1;interfaceusesWin do ws, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, ComCtrls, ExtCtrls, StdCtrls;typeTForm1 = class(TForm)img1: TImage;btn1: TButton;btn2: TButton;tmr1: TTimer;tb1: TTrackBar;dlgOpen1: TOpenDialog;rg1: TRadioGroup;procedure FormCreate(Sender: TObject);procedure tb1Change(Sender: TObject);procedure btn1Click(Sender: TObject);procedure tmr1Timer(Sender: TObject);procedure btn2Click(Sender: TObject);private{ Private declarations }public{ Public declarations }end;varForm1: TForm1;i: Integer;L,T,R,B: Integer;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject); beginT:= Img1.Top;l:= img1.Left;b:= img1.Top+ img1.Height;r:= img1.Left+ img1.Width;end;procedure TForm1.tb1Change(Sender: TObject); begintmr1.Interval:= tb1.Position;end;procedure TForm1.btn1Click(Sender: TObject); vark: Integer;beginCanvas.Pen.Color:= Form1.Color;if rg1.ItemIndex<2 then beginfor k:= 0 to b do beginCanvas.MoveTo(0,k);Canvas.LineTo(r,k);end;end else if rg1.ItemIndex=2 then beginfor k:=0 to b+4 do beginCanvas.MoveTo(0,k);Canvas.LineTo(r,k);end;end;tmr1.Enabled:= True;i:= 0;end;procedure TForm1.tmr1Timer(Sender: TObject);varx,y: Integer;beginif rg1.ItemIndex=0 then beginSelf.Canvas.CopyRect(Rect(l,t+i,r,t+i+1),img1.Canvas,Rec t(0,0+i,img1.Width,0+i+1));Self.Canvas.CopyRect(Rect(l,b-i,r,b-i+1),img1.Canvas,Rect(0,img1.Height-i,img1.Width,img1.Height-i+1));i:= i+1;if i>b/2-1 then tmr1.Enabled:= False;end else if rg1.ItemIndex=1 then beginSelf.Canvas.CopyRect(Rect(l,t+i*4,r,t+i*4+2),img1.Canvas ,Rect(0,0+i*4,img1.Width,0+i*4+2));Self.Canvas.CopyRect(Rect(l,b-i*4-2,r,b-I*4),img1.Canvas,Rect(0,img1.Height-i*4-2,img1.Width,img1.Height-i*4));i:= i+1;if i>img1.Height/4 then tmr1.Enabled:= False;end else if rg1.ItemIndex=2 then beginfor x:= 0 to (img1.Width div 8 ) do beginfor y:= 0 to (img1.Height div 8 ) do begincase i of0:Self.Canvas.CopyRect(Rect(l+x*8,t+y*8,l+x*8+4,t+y*8+4),im g1.Canvas,Rect(0+x*8,0+y*8,0+x*8+4,0+y*8+4));1:Self.Canvas.CopyRect(Rect(l+x*8+4,t+y*8+4,l+x*8+8,t+y*8+ 8),img1.Canvas,Rect(0+x*8+4,0+y*8+4,0+x*8+8,0+y*8+8));2:Self.Canvas.CopyRect(Rect(L+x*8,t+y*8+4,l+x*8+4,t+y*8+8) ,img1.Canvas,Rect(0+x*8,0+y*8+4,0+x*8+4,0+y*8+8));3:Self.Canvas.CopyRect(Rect(l+x*8+4,t+y*8,l+x*8+8,t+y*8+4), img1.Canvas,Rect(0+x*8+4,0+y*8,0+x*8+8,0+y*8+4));end;end;end;i:= i+1;if i>3 then tmr1.Enabled:= False;end;end;procedure TForm1.btn2Click(Sender: TObject);beginif not dlgOpen1.Execute then Exit;img1.Picture.LoadFromFile(dlgOpen1.FileName);T:= Img1.Top;l:= img1.Left;b:= img1.Top+ img1.Height;r:= img1.Left+ img1.Width;end;end.。
Delphi图形图像处理
1.3.TPen Object(画笔对象)
应用程序常用TPen对象在画布上绘制各种 线段,笔的颜色在Color属性中定义。线段 宽度在Width属性中定义。Style属性定义 了线段的各种类型
2.2.Shape组件
Shape组件用于在窗体中绘制几何图形, 如椭圆,矩形和圆角矩形等。
属性: (1)Shape:绘制图形的形状。 (2)Brush:几何图形中填充的颜色。 (3)Pen:几何图形所使用的线行。
2.3.PaintBox组件
该组件是一个简单的画板,它为应用程序提供了可 在窗体的特定区域内画图的方法。它和Image组件 不同,Image组件是显示已经保存在文件中的图像, 而PaintBox组件需要应用程序直接在窗体上进行 绘制。一旦该组件加入窗体,应用程序就可以利用 OnPaint事件在画板上画图。
这是一个32位二进制数据。Graphic单元中还定 义了一些常用的颜色常量,这些常量或直接映射 成系统调色板中最相近的颜色,或映射成 Windows 控制面板中颜色部分的系统视频颜色。 直接映射成系统调色板中的颜色有: ClAqua,CLBlack,ClBlue,ClbkGrray,ClFuchso a......ClYellow
椭圆,(x1,y1)是矩形左上角的象素坐标, x2,y2是矩形右下角的象素坐标。如果矩形 形成一个区域,将出现一个椭圆。
见例子
线条
LineTo(x,y : Integer); LineTo从当前位置画一条线至(x,y)所指定 的位置,并把笔的位置移至(x ,y)。
DELPHI+Flash组合下多媒体CAI开发的特性与技巧
略谈DELPHI+Flash组合下多媒体CAI开发的特性与技巧提纲:一、windows平台下最优多媒体制作工具组合DELPHI+FLASH1、基于脚本的多媒体编辑工具2、基于流程的多媒体编辑工具3、基于时序的多媒体编辑工具4、基于可视化编程语言的编辑软件二、Delphi+Flash平台实现多媒体CAI制作的一些新特性1、交互界面的实现2、图像过渡的实现3、 Gif、AVI、MOV、MP3、Mpeg等多媒体元素的引用4、 MsAgent技术的应用5、 TTS技术的应用6、 swf控制宿主程序的行为(1) 宿主程序控制SWF的播放(2) swf控制宿主程序的行为(3) 宿主程序和swf互相传递变量7、最好的解决方案三、处理多媒体CAI的一些技巧1、让多媒体CAI适应不同的屏幕2、声音处理的技巧(1)怎样录音(2)避免使用MIDI(3)必须使用MP3吗?(4)如何将其他文件转为WAV文件?(5)实现多声道3、更加直观的拖动操作4、更高效的动画实现方案:Moho+Flash四、多媒体CAI制作中需要注意的一些问题1、界面要有亲和性2、要重视美工在多媒体制作中的作用3、脚本比制作更重要4、注释、文档要完备5、要注意版本控制6、提高所创作素材的重用率7、测试、测试、再测试多媒体(MULTIMEDIUM)是利用计算机或者其他电子手段传递的文本、图形、声音、动画、图像和视频信息的组合,多媒体CAI 就是多媒体环境下的CAI课件,它功能更强,适用于个体化教学环境,他所提供的教学环境更能激发学生学习的主动性和积极性,提高教学效率,改善教学效果。
多媒体CAI最显著的特点是集成性和交互性。
下面,结合作者制作多媒体CAI的经历,谈一谈WINDOW平台下多媒体制作工具的选择以及使用DELPHI+Flash工具组合下制作多媒体CAI的一些技巧以及需要注意的问题。
一、windows平台下最优多媒体制作工具组合DELPHI+FLASH制作多媒体CAI的著作工具(编辑软件)是一种高级的软件程序或者命令集合。
DELPHI基础教程:Delphi图形图像编程(二)[2]
DELPHI基础教程:Delphi图形图像编程(二)[2]另外一个问题是我们希望得到的是鼠标按钮按下和松开这两点所形成的图形但OnMouseMove却把鼠标轨迹上各点与起始点所形成的所有图形画在屏幕上这同样是我们不希望看到的为了解决这些问题程序定义了鼠标的三个事件procedure TForm FormMouseDown(Sender: TObject; Button: TMouseButton;Shift: TShiftState; X Y: Integer)beginDrawing := True;Image Canvas MoveTo(X Y)Origin := Point(X Y)MovePt := Origin;OriginPanel Caption := Format( Origin: (%d %d) [X Y])end;procedure TForm FormMouseUp(Sender: TObject; Button: TMouseButton;Shift: TShiftState; X Y: Integer)beginif Drawing thenDrawShape(Origin Point(X Y) pmCopy)Drawing := False;end;procedure TForm FormMouseMove(Sender: TObject; Shift: TShiftState; XY: Integer)beginif Drawing thenbeginDrawShape(Origin MovePt pmNotXor)MovePt := Point(X Y)DrawShape(Origin MovePt pmNotXor)end;MovePt用来记录鼠标当前位置当下次鼠标移动时就能在上次鼠标绘制的图形上画一个形状大小一样的图形并把画笔颜色设置成PmNotXor 使上次绘制的图形颜色变成了屏幕颜色从而达到橡皮擦的效果将画笔画刷的Style属性设置成用户希望的值可实现对画笔和画刷风格的选择procedure TForm SetBrushStyle(Sender: TObject)beginwith Image Canvas Brush dobeginif Sender = SolidBrush then Style := bsSolidelse if Sender = ClearBrush then Style := bsClearelse if Sender = HorizontalBrush then Style := bsHorizontal else if Sender = VerticalBrush then Style := bsVerticalelse if Sender = FDiagonalBrush then Style := bsFDiagonal else if Sender = BDiagonalBrush then Style := bsBDiagonal else if Sender = CrossBrush then Style := bsCrosselse if Sender = DiagCrossBrush then Style := bsDiagCross;end;procedure TForm SetPenStyle(Sender: TObject)beginwith Image Canvas Pen dobeginif Sender = SolidPen then Style := psSolidelse if Sender = DashPen then Style := psDashelse if Sender = DotPen then Style := psDotelse if Sender = DashDotPen then Style := psDashDotelse if Sender = DashDotDotPen then Style := psDashDotDot else if Sender = ClearPen then Style := psClear;end;end;图像对象概述TGraphic对象TGraphic对象是TBitmap TIcon Tmetafile对象的基类如果知道图像的具体类型(如位图图标元文件)则应将图像贮存在相应类型的对象中(如TBitmap TIcon Tmetafile)否则应该使用可贮存任何图像类型的TPicture对象TPicture对象TPicture对象可以保存位图图标或元文件 Graphic属性中包括图像的类型图像的高度和宽度分别定义在Height Width属性中调用LoadFromFile方法可以从文件中装载一幅图像procedure TForm FormCreate(Sender: TObject)beginBitBtn Glyph LoadFromFile( TARTAN BMP )end;要保存一个位图则要用SaveToFile方法要把图像复制到剪切板可以调用TClipboard对象的Assign方法TImage部件TImage部件用以在窗体中显示图像它的Picture 属性保存着要显示的图像这是一个TPicture对象AutoSize Stretch属性是用来调节部件与图像的大小的当AutoSize 为真值时TImage部件将根据它所包含的图像的大小来调整自身的大小当AutoSize为假值时不论图像有多大部件将保持设计时的大小如果部件比图像小那么只有一部分图像是可见的当Stretch为真值时位图像将根据部件的大小调整自身的大小当部件大小改变时元文件也做相应变化 Stretch属性对图标没有作用TBitmap Object(位图对象)位图对象包含一个位图图像有HBITMAP HPALETE句柄可自动管理调色板位图对象也有画布属性位图的Palette属性用来控制位图的颜色映射它包括种可显示的颜色如果应用程序用前景色绘制位图Palette 属性的颜色将被加入Windows系统调色板其它颜色被映射到系统调色板已存在的颜色如果应用程序用自己的颜色绘制位图而其它程序已占有系统调色板位图的颜色将被映射到系统调色板中如果Monochrome属性设置成假位图将显示成彩色反之显示成黑白色调用Draw和StretchDraw方法可在画布上绘制位图图像对象的应用本章例程中单击(文件|浏览)菜单项将弹出一个图像浏览窗体如果用户在窗体中选择文件列表框的图形文件窗体右上角的图像部件上将出现此文件所代表的图像若选择雕刻效果按钮中检查框窗体中的加速按钮和位图按钮上将出现位图以下代码是将图像文件装载至图像部件上procedure TImageForm FileListBox Click(Sender: TObject)varFileExt: string[ ];beginFileExt := UpperCase(ExtractFileExt(FileListBox Filename))if (FileExt = BMP ) or (FileExt = ICO ) or (FileExt = WMF )thenbeginImage Picture LoadFromFile(FileListBox Filename)Label Caption := ExtractFilename(FileListBox Filename)if (FileExt = BMP ) thenbeginLabel Caption := Label Caption +Format((%d x %d) [Image Picture Height Image PictureWidth])ViewForm Image Picture Bitmap := Image Picture Bitmap;ViewAsGlyph(FileExt)end;if FileExt = ICO then Icon := Image Picture Icon;if FileExt = WMF thenViewForm Image Picture Metafile := Image Picture Metafile;end;end;这个过程首先判断文件类型如果是图像文件则将图像装载至图像部件上并在标签上列出文件名称如果是位图文件还将显示其大小lishixinzhi/Article/program/Delphi/201311/25244。
Delphi 6程序设计及其应用开发--第4章 图形与图像操作
返回本节
4.2 实例介绍
4.2.1 例1:颜色与运动控制 : 4.2.2 例2:绘图程序的设计 :
返回本章首页
4.2.1 例1:颜色与运动控制 :
程序要实现的功能是通过TListbox和 TComBoBox控 程序要实现的功能是通过 TListbox和TComBoBox 控 TListbox TShape控件的形状和颜色 通过TCheckBox 控件的形状和颜色, TCheckBox控制 制 TShape 控件的形状和颜色, 通过 TCheckBox 控制 Tshape控件是否移动 设计步骤(如下图) 控件是否移动. Tshape控件是否移动.设计步骤(如下图): 1.窗体中控件的加入 2.保存项目里的所有文件 3.设定项目里控件的属性
图4-2 实例1的设计界面
图4-3 String List Editor对话框
图4-5 实例1的运行结果
表4-4 控件TListBox的属性
属性 Name MultiSelect 属性值 ColorListBox False
返回本节
4.2.2 例2:绘图程序的设计 :
程序设计步骤: 程序设计步骤: 1.向窗体中加入控件并设置其属性(如下图) .向窗体中加入控件并设置其属性(如下图) 加入控件并设置其属性 (1)确定窗体的总布局 ) (2)向窗体中加入新的控件 ) 3) (3)添加控件美化窗口 (4)添加新控件并设置其属性 ) 2.保存项目里的所有文件 . 3.为各控件添加响应事件 .
表4-3 Shape属性的取值和意义 取值 StCircle StEllipse StRectangle StRoundRect StRoundSquare StSquare 意义 画一个圆 画一个椭圆 画一个矩形 画一个带圆角的矩形 画一个带圆角的正方形 画一个正方形
Delphi程序的设计及实验指导第10章 多媒体编程
(2)Center属性:该属性用来决定是否将AVI剪辑放在TAnimate区 域的中间位置。
10.1 动画组件Tanimate
(3)FileName属性:该属性用来指定AVI剪辑文件的文件名。需 要注意的是,该文件包含的AVI剪辑必须是无声的。此外,在指定 播放AVI文件的时候要保证CommonAVI属性值为aviNone。
第10章 多媒体编程
▪ 导读 ▪ 10.1 动画组件TAnimate ▪ 10.2 媒体播放器组件TMediaPlayer ▪ 10.3 简单的动画播放程序的设计 ▪ 10.4 简单的CD播放器的制作 ▪ 小结 ▪ 习题
导读
▪ 多媒体技术是近年来计算机技术的一个重要的发展方向,采用多 媒体技术制作的软件产品已经越来越多地走进生活、学习、娱乐 之中。Delphi 8 for .NET作为一种快速开发工具,不仅在开发数据 库和网络应用程序中令人称道,而且Delphi 8 for .NET为开发人员 提供了功能全面的多媒体开发组件,这些组件使得利用Delphi开 发多媒体应用程序非常方便容易。
(5)ColoredButtons属性:该属性用来设置控制按钮是黑白显示 还是彩色显示,默认全部按钮均为彩色显示。
(6)DeviceType属性:该属性用来指定使用Open方法要打开多媒 体设备的类型。它的默认值为dtAutoSelect,表示TMediaPlayer组 件会根据FileName所指定的文件扩展名来决定设备类型。如果播 放文件扩展名没有相关的设备类型,需要用户指定设备类型,而 不能简单地使用dtAutoSelect。如果开发的播放器是CD播放器,则 在设计阶段就设置该属性为dtCDAudio,它表示媒体载体为CD。
Delphi的图形处理(一)
Delphi的图形处理(一)Delphi的图形处理之一 -- 图像处理在可视化编程中的作用及其应用价值 作者:何咏发布日期:(2005-4-12 21:07:49)声明:本文著作权属于何咏,如要转载请声明作者及出处。
第一章图像处理在可视化编程中的作用及其应用价值图像处理,是可视化编程的基础内容。
在Windows操作系统中,一切要输出到屏幕上的东西都是通过图形处理这部分的内容来实现的。
比如一个程序使用了标签控件,它看起来似乎并没有用到什么图形处理,但实际上标签控件就是通过使用GDI库中的图形处理函数来实现的。
可见图形处理在编程中的重要性。
图像处理在实际的应用中也极具价值。
平面制作、动画制作等都离不开它。
这一部分的内容十分繁多。
我本次研究的内容,只是其中最基础的、最重要一部分。
探究Delphi的图形处理之二 -- 基本图像处理函数 作者:何咏发布日期:(2005-4-12 21:06:29)声明:本文著作权属于何咏,如要转载请声明作者及出处。
第二章图像处理函数2.1 为什么选择Delphi所有的可视化编程语言都能够进行图像处理。
但由于这些语言的定位不同,它们在进行图形处理的效率和便捷程度上也各不相同。
实际上,Visual C 的图像处理效率是最高的,这是由于GDI类库本身就是用C++写的。
但是使用VC来编程并不是一件方便的事,因为这个语言本身就较为繁杂难懂,所以我没有选择它。
Visual Basic(VB)也是一个常用的语言,但它在图形处理方面能力较差。
首先是它的坐标系统是以t wip为单位的浮点坐标系统,在调用GDI类库时,必须对坐标系统进行转换,浪费了大量的资源,编程起来较为麻烦。
在多方面因素的影响下,我觉得Delphi是一个理想的语言。
Delphi已经把绝大多数GDI绘图函数都封装成可直接调用的类,使用它进行图形处理操作十分方便,而且Delphi 是Pascal演变而来的,Pascal具有严谨易读的特点,因此很容易上手。
Delphi PPT第9章 多媒体编程
1. 主要操作步骤 form1中放三个 中放三个Tbutton 组件和一个Timage组件; Timage组件 在form1中放三个Tbutton 组件和一个Timage组件; 分别设置三个Tbtton Caption属性如图所示 Tbtton的 属性如图所示。 分别设置三个Tbtton的Caption属性如图所示。 2. 主要程序代码 procedure TForm1.Button1Click(Sender: TObject); begin image1.Picture.LoadFromFile('C:\ image1.Picture.LoadFromFile('C:\Program Files\ Files\ Files\Common Files\BorlandShared Images\Splash\256Color\ \Images\Splash\256Color\handshak.bmp'); //调入图像 //调入图像 end;
它是一种容器控件,在应用程序的窗体上提供了 它是一种容器控件, 一个矩形区域。Image对象是建立在Bitmap、Icon、 对象是建立在Bitmap 一个矩形区域。Image对象是建立在Bitmap、Icon、 Picture等对象的基础上 用于显示图片( 等对象的基础上, Picture等对象的基础上,用于显示图片(扩展名 .bmp、.ico、.wmf、.jpg的文件)。它的一个重要 的文件)。 为.bmp、.ico、.wmf、.jpg的文件)。它的一个重要 属性是picture属性,这个属性是调入显示的图片。 picture属性 属性是picture属性,这个属性是调入显示的图片。
《Delphi 2005程序设计及其应用开发》 第7章 图形与图像操作
End;
TCanvas对象程序举例(3): 3、画刷的使用 With Form1.Canvas do Begin Pen.Color:=clBackground; Pen.Mode:=pmCopy; Brush.Color:=clRed; Brush.Style:=bsVertical; Rectangle(20,20,300,300); End;
画布的使用程序举例:
TCanvas提供了子属性,用于配置图形。属性如下:
(1)Brush属性(画刷)
(2)ClipRect属性 (3)Font属性 (4)Pen属性(画笔)
返回本节
TCanvas对象程序举例(1): 1、在窗体上画线 Form1.Canvas.MoveTo(0,0); Form1.Canvas.LineTo(Form1.Width,Form1.Height); 或者 With Form1.Canvas do Begin Pen.Mode:=pmCopy; //定义画笔的类型 Brush.Color:=Form1.Color; //定义画刷的颜色 MoveTo(10,10); //移到点(10,10) LineTo(300,120); //从(10,10)画线到(300,120) LineTo(20,50); //从(300,120)画线到(20,50) MoveTo(300,40); LineTo(100,80); End;
TCanvas对象程序举例(4): 4、在分页控件上输出文本
用画布输出文本源代码 返回
7.1.2 Shape控件
TShape控件的一些属性:
( 1 ) Brush 属性:用于设置几何图形内部的填充特 性,包括填充的颜色和图案。
( 2 ) Pen 属性:用于设置画笔的属性包括画笔的颜 色、线型和宽度等。
用Delphi开发多媒体图形应用程序
二、D lh 相关技术 ep i
与绘 图和位图操作有关 的对象足画布 T a vs Cna 对 C na。T a vs
象封装 了 Wi o s P 的 G I n w I d A D ,用 户可以很方便 地在画布 七绘 制直线 、矩 形 、椭圆 、多边形 等基 本 形 ,还可以显示和拷贝
.
.
.
/ 设置填充 颜色为黄色《 / 棋盘的背景色)
.
=
五子棋是大家都很熟悉 的一个 游戏 黑 、白两种棋子 ,两 人对奕 ,哪方先有五子连成一线 ( 米字型都可 以)的算哪方胜 利。首先 ,我们要先将棋盘放 画到界面 七,这 里我 们使用的是
D lh 中 的 T a to 组 件 ,通 过 它 的 C n a 性 来 进 行 棋 盘 epi p ib x n avs属
序。
T rs buh对象足用来 填充图形的 ,例如用画刷颜色或 图案对 封闭图形进行填充 。其常用属性 : ●C l 属性 :用来定义填 充图形所用 的颜色 or o . ●Bt a i p属 性 :用 来 定 义填 充 图形 所 用 的位 图 。 由于 m T rs huh对象不能 自动释放位 图,当填充完毕时 ,我们要及时释
水平线填充 竖直线填充
() To r 3 cl 对象 o
Too 对象用 于定义一个对象 的颜色 。很多组件 的颜色属 clr
性都 是 T o r 型, 是一个 3 cl 类 o 它 2位二进 制数据 。在 Gahc单 r i p
元 中还 定 义了一 些 常 用 的 颜 色 常 量 ,如 CBu 蓝 色 ) 、 1le( CBak ( 1l c 黑色)等 。在程序 中可 以直接使用这些常量 ,也可以 指定一个 3 2位的二进制数据来确定所选择 的颜色值 。
Delphi中图像的像素级操作
Delphi中图像的像素级操作Delphi中图像的像素级操作华软源码一般的可视性编程语言,如VB本身只具有图像的一般显示功能, 加上简单的图像伸缩处理, 在进行一些图像复杂的特技显示时必须借助于Windows的有关API 函数。
但Delphi为用户提供了更为完善的图像处理能力, 依靠它本身的功能完全可以实现图像的像素级操作?疚慕樯芰薉elphi中像素级图像操作的基本原理、应用和实例。
一、基本原理在Delphi中有很多控件具有CANVAS属性, 即所谓的画布, 利用这一属性可以在控件的表面进行图形图像处理工作, 其中有一个CopyRect命令, 具体参数格式:Copyrect(Dest:TRect;Canvas:Tcanvas;Source:TRect);其中:Dest:目标画布矩形 Canvas:源画布 Source:源矩形,其功能是把图像从一个源矩形RECT内,复制到目标矩形RECT内, 复制的图像具有自动伸缩性质。
从这个命令的表面看只能进行图像的全部或部分复制功能,其实如果把矩形RECT定义成只有一个像素大小, 即可以从源图像中取出一个像素点, 即进行图像的像素级操作, 比如:Rect(0,0,1,1)可指定某图像源的左上角第一个像素。
二、像素级操作的应用图像的像素级操作可广泛应用在图像的特技显示效果制作工作中, 并且可以实现较为复杂的图像处理工作, 举例如下:1.图像的旋转: 在Delphi中利用其他方法显示图像时,比如利用图像框IMAGE 或者DRAW命令, 只能按原图的方向显示, 进行图像的旋转显示必须以像素为单位进行处理,重新安排像素的排列位置, 比如按先横向后纵向的方式读取原图像,然后按先纵向后横向的方式写像素,最终将形成旋转90度的图像,按同样的原理可形成旋转180度或270度的图像。
2.图像尺寸的改变: 图像尺寸的改变在Windows 中好象并不需要像素级操作, 利用图像框的伸缩性可以简单地完成这一工作, 但利用像素操作改变图像尺寸是图像放大或缩小操作的根本, 并且可以具有更高的精确和更高的灵活性?热绾嶙菹蚓扛粢坏闳∫幌袼? 连续写在目标画布上, 即可使图像缩小到原来的四分之一;而读出一点像素后, 在目标画布上连续写两点以上, 即可实现图像的放大显示。
Delphi程序设计基础第8章-Delphi图形及多媒体应用
8.1.2 PaintBox组件
PaintBox(画板)组件可让用户使用 绘图语句在一块区域中作图。画板组件位 于“System”组件页上,主要使用Canvas (画布)属性来进行绘图,它是类 TPaintBox的对象。
8.1.3 画布对象
所有能够绘制图形的组件或区域都有 一个Canvas成员,它是类TCanvas的对象。
MoveTo方法可以定位线的起始点, LineTo方法用于画线,所以要在(x1,y1) 和(x2,y2)之间画线,可以使用语句: Canvas.MoveTo(x1,y1); Canvas.LineTo(x2,y2);
(2)矩形。
Canvas对象画线调用Rectangle方法, 语句如下: Canvas.Rectangle(x1,y1,x2,y2); 其中,(x1,y1)是矩形的左上角, (x2,y2)是矩形的右下角。如果|x2x1| 等于|y2y1|,则为正方形。
1.主要属性
Brus子属性: Color子属性,用于设定几何图形的填 充颜色; Style子属性,用于设定几何图形的填 充图案。 Pen属性:几何图形的外框特性如颜色、 线型和线宽等,有4个子属性:Color, Mode,Style和Width。
第8章
Delphi图形及多媒体应用
8.1
绘图组件
8.2
图形列表组件
8.3
图形栅格组件
图形日历组件
8.4
8.5
多媒体组件
Delphi提供了一些图形类组件,最常 用的有绘图组件、图形列表组件、图形栅 格组件、图表组件、图形日历组件、多媒 体组件等。
8.1 绘 图 组 件
8.1.1 Shape组件
Shape(几何图形)组件可以显示一些 常见的几何图形,如圆、矩形、正方形和 椭圆等。
Delphi中使用DirectDraw技术进行图形处理
Delphi中使用DirectDraw技术进行图形处理DirectDraw是一套名为DirectX复杂工具的一部分,DirectX是由许多不同的技术组成,比如:DirectDraw、Direct3D、DirectSound、DirectPlay、DirectInput和DirectSetup等。
其中的每一种技术都是集中了几种处多媒体的技术或游戏的技术,像声音播放、3D图形、网络播放、硬件设备如鼠标和强制反馈等等。
不过,在本章中将只介绍DirectDraw,并且这个主题很容易就会占用一章或更多的章节关于DirectX的其他技术内容,读者可以去参阅其他关于DirectX的书籍。
DirectDraw程序要求用户的系统必须有DirectDraw运行时的DLL,这些运行时文件(实际只是DLL的集合,可能许多机器已经安装了),还可以从Micorsoft的Web站点获取;该站点有各种各样的产品,包括游戏、Windows 98、将来的操作系统Windows NT 5等。
如果读者正在使用的是Windows NT 4,那么至少要用Service Pack 3(SP3)去升级,之后才能够访问作为SP3一部分的DirectDraw 3。
不要试图直接在Windows NT系统下安装运行时的DirectDraw,而应该安装最新的补丁(Service Pack),直接安装运行时的DirectDraw是针对Windows 95/98系统而言的。
确定一个系统是否安装了DirectDraw的一个方法是查看Windows/System或Winnt/System32目录是否存在DDRAW.DLL和DSOUND.DLL,如果有,则说明系统已经安装了DirectDraw。
在可能的情况下,读者应该从Microsoft获取DirectDraw SDK,通常它可以从Microsoft 的Web站点下载得到,不过请注意,它至少有30M。
安装了SDK后,它在硬盘上创建一个名为DXSDK的目录,在这个目录之下是SDK目录,其中包含有各种各样的文档、用C/C++编写的示例文件和帮助文件。
Delphi程序设计教程 第7章 多媒体程序设计
2.AutoOpen属性 AutoOpen属性 该属性为布尔型,它确定当应用程序运行时, 该属性为布尔型,它确定当应用程序运行时,媒 体播放器是否自动打开媒体设备。若为True True( 体播放器是否自动打开媒体设备。若为True(默认 值),在运行时可自动打开由DeviceType属性指定的 在运行时可自动打开由DeviceType ),在运行时可自动打开由DeviceType属性指定的 多媒体设备(或若DeviceType为dtAutoSelect则打开 DeviceType为 多媒体设备(或若DeviceType dtAutoSelect则打开 文件FileName);若AutoOpen为False, 文件FileName);若AutoOpen为False,则必须调用 FileName); Open方法来打开设备。 Open方法来打开设备。 方法来打开设备 在打开设备时若出现错误, 在打开设备时若出现错误,则出现类为 EMCIDeviceError的意外处理。 EMCIDeviceError的意外处理。 的意外处理
2. 存储空间问题 音频视频质量越高,所用的存储量就越大。 音频视频质量越高,所用的存储量就越大。因此 要考虑系统在加入多媒体之后,应用程序是否还有足 要考虑系统在加入多媒体之后, 够的空间运行。 够的空间运行。 3. 对显示器的要求 要获得色彩逼真的效果,就要将显示器至少设置 要获得色彩逼真的效果, 为1024×768和真彩色。这就要求用好的显示器和显卡。 1024×768和真彩色。这就要求用好的显示器和显卡。 和真彩色
7.1.3 Windows操作系统的多媒体支持 Windows操作系统的多媒体支持 多媒体计算机是在传统计算机中增加音频设备和 CD-ROM设备而构成的。 CD-ROM设备而构成的。 设备而构成的 在Windows 95/98/2000和Windows NT中提供了多 95/98/2000和 NT中提供了多 媒体控制接口MCI 它包含了一系列的函数调用。 媒体控制接口MCI,它包含了一系列的函数调用。 MCI, Delphi中提供了制作多媒体的组件, Delphi中提供了制作多媒体的组件,这些组件将 中提供了制作多媒体的组件 命令及其复杂的函数调用进行了封装,使得创建多媒 命令及其复杂的函数调用进行了封装, 体应用程序的工作大大地简化了。 体应用lay属性 Display属性 Display属性指定多媒体设备输出的显示窗口, Display属性指定多媒体设备输出的显示窗口,可 属性指定多媒体设备输出的显示窗口 指定一窗体或面板等。 指定一窗体或面板等。 默认值为空,即该设备建立自己的窗口用于输出。 默认值为空,即该设备建立自己的窗口用于输出。 在设备打开后,若清除显示窗口(Free),则视频输 在设备打开后,若清除显示窗口(Free),则视频输 ), 出在默认的窗口中。 出在默认的窗口中。要使用窗口显示输出的多媒体设 备有:动画、AVI Video、MIDI及VCR等。 Video、MIDI及VCR等 备有:动画、
《Delphi 2005程序设计及其应用开发》 第7章 图形与图像操作
TCanvas对象程序举例(4): 4、在分页控件上输出文本
用画布输出文本源代码 返回
7.1.2 Shape控件
TShape控件的一些属性:
( 1 ) Brush 属性:用于设置几何图形内部的填充特 性,包括填充的颜色和图案。
( 2 ) Pen 属性:用于设置画笔的属性包括画笔的颜 色、线型和宽度等。
第7章 图形与图像操作
本章要点 7.1
基本概念
7.2
实例介绍
结束
本章要点
图形与图像控件的概念和操作使用,如: Image、Shape、ImageList等控件的使用
绘图对象的概念和操作使用,如:
Canvas(画布)、Pen(画笔)、Brush(画刷)
举例说明颜色与运动的控制。
7.2.1 实例1:弹子球
3.设置各组件的属性 4.定义全局变量 5.为各组件添加事件过程 程序运行后的界面如下图所示。当用户在TPanel组件所在区域点 击鼠标右键,会弹出快捷菜单,通过该快捷菜单可改变 TShape组件的颜色和形状。
弹子球实例源代码
返回本节
7.2.2 实例2:绘图工具的设计开发
返回本节
7.2 实例介绍
7.2.1 实例1:弹子球 7.2.2 实例2:绘图工具的设计开发
返回本章首页
7.2.1 实例1:弹子球
本例主要介绍TShape组件的使用方法,同时本例中还涉及到TPanel、 TTimer和TPopMenu组件的使用 。程序的设计步骤如下:
1.新建VCL Form应用程序
画布的使用程序举例:
TCanvas提供了子属性,用于配置图形。属性如下:
第十二章图形图像与多媒体技术
二、画笔操作 1、画线的方法 1)画笔移动:Moveto(x, y: integer); 2)画直线段:Lineto(x, y: integer); 3)画折线:Polyline(points: array of TPoint); 2、画矩形:Rectangle(x1, y1, x2, y2: integer); 3、画椭圆:Ellipse(x1, y1, x2, y2: integer); 4、画弧形:Arc(x1, y1, x2, y2, x3, y3, x4, y4: integer); 5、圆角矩形:Roundrect(x1, y1, x2, y2, x3, y3: integer); 例:使用Canvas属性基本作图方法,画出以下图形 利用窗体的paint事件编码。
11.2 图象控件Image
图象控件是一种容器控件,它在应用程序窗体上提 供一个矩形区域,用于显示位图、图标、图元文件。 1、常用属性 Picture: 调入指定的图形文件 Autosize: 是否自动调整大小以适应调入的图形 Stretch: 图形是否自动缩小或放大以适应控件的大小 2、使用调用过程 Procedure LoadFromFile(const DileName:string); 说明:在程序运行期间调入图形。
Params: 设置SQL语句使用的多个参数。 二、数据控制部件(Data Controls) 也称数据浏览控件,主要用于设计用户界面, 对数据库中的数据进行浏览、编辑、插入、删除 等操作。但它不具备访问磁盘数据库的能力。 1、TDBGrid控件 用网格的形式显示数据库表中的记录信息。 2、TDBNavigator控件 使用该部件可以向前向后移动记录指针,可以 使用该部件对单条记录进行编辑。
表(Table):一个表就是一组相关的数据按行排 列,像一张表格一样。 字段(Field):在表中,每一列称为一个字段。 记录(Record):在表中,每一行称为一条记录。 二、Delphi的数据库特性及功能简介 是Borland公司于1994年底发布的用于开发数 据库应用程序的工具,Delphi结合了传统的编程 语言Object Pascal和数据库语言的强大功能,既 可以用于传统的算术编程又可以用于数据库编程。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
图象控件Image
例:编写Button的单击事件代码如下: begin Image1.picture.loadFromfile((‘图像文件路径')); end;
图象控件Image
也可使用打开图片对话框,在窗体中添加图片 对话框openpicturedialog控件,并将 button1的click事件代码改为如下所示,则可 实现交互式打开图片的方法:
myshape.Left :=280+15*i;
myshape.Width :=250-25*i;
myshape.Parent :=form1;
end;
第6章 图形图像与多媒体技术
6.1 几何图形控件Shape 6.2 图象控件Image 6.3 画布(Canvas)对象
像素操作 画笔操作 画刷操作 6.4 PaintBox画板控件 6.5 多媒体程序设计 卡通控件 媒体播放器
:='shape'+inttostr(i);
myshape.Shape :=stellipse;
myshape.Pen.Color :=clblue;
myshape.Brush .style:=bsbdiagonal;
myshape.Top:=96;
myshape.Height :=233;
lineto(x,y: Integer)。
(3) 画折线的方法,使用方法为Polyline(points:array of TPoint)。
2. 画矩形的方法
rectangle(x1,y1,x2,y2:integer);
3. 画圆或椭圆的方法
ellipse(x1,y1,x2,y2:integer);
第6章 图形图像与多媒体技术
6.1 几何图形控件Shape 6.2 图象控件Image 6.3 画布(Canvas)对象
像素操作 画笔操作 画刷操作 6.4 PaintBox画板控件 6.5 多媒体程序设计 卡通控件 媒体播放器
6.1 几何图形控件Shape
Shape:用于绘制椭圆、正方形等简单的几何 图形。
画布(Canvas)对象:画笔操作
1. 画线的方法
(1) Moveto方法,作用是将画笔移到指定位置,使用方法为: moveto(x,y,integer)。
(2) lineto方法,作用是画一条到指定位置的直线段,线段起始位置 由画布对象的Penpos属性值即画笔的当前位置确定。使用方法为:
几何图形控件Shape的主要属性 1. Shape属性:该属性用于指定控件的几何形
状。 2. Brush属性:该属性用于填充Shape控件的
颜色和图案。 3. Pen属性:该属性指定了Shape轮廓的画线
的颜色和风格。
几何图形控件Shape
例:在FORM上作一地球. (1)地球由蓝色的经线和纬线组成,设计时可使用
对窗体1的paint事件编码如下,即可实现。 procedure TForm1.FormPaint(Sender: TObject); begin canvas.pen.color:=clred; with canvas do begin moveto(10,10);//画直线; lineto(100,100); pen.color:=clblue; rectangle(110,10,200,100);//画矩形 pen.color:=clolive; ellipse(210,10,400,100);//画椭圆 pen.color:=clteal; roundrect(410,10,500,100,50,50); //画圆角矩形 pen.color:=clblack; arc(120,200,320,300,120,200,320,200);//画弧形曲线 pen.color:=clgreen; polyline([Point(420,200),Point(380,300),Point(480,240),Point(360,240),Point(
画 布本身也是一种控件,但一般不单独使用。
画布(Canvas)对象:像素操作
使用Pset方法绘制圆的渐开线,如图所示。 (1) 在窗体中添加按钮button1,其caption属性
值改为“显示”。
画布(Canvas)对象:像素操作
(2) 按钮button1的click事件代码如下: procedure TForm1.Button1Click(Sender: TObject); var xt,yt,t:integer; x,y:real; begin x:=form1.ClientWidth/2; y:=form1.clientheight/2; for t:=0 to 15000 do begin xt:=round(cos(t/100)+t*sin(t/100)/100+x); yt:=round(-sin(t/100)-t*cos(t/100)/100+y); canvas.pixels[xt,yt]:=clblue; end; end;
procedure TForm1.Button1Click(Sender: TObject);
var filename:string;
begin if openpicturedialog1.execute then begin filename:= openpicturedialog1.filename; Image1.picture.loadFromfile(filename); end;
10个由大到小的竖放的椭圆作经线,再由10个 由大到小的横放的椭圆作纬线. (2)通过计算得到每一个椭圆的(left,top)及 (height,width)的值.
几何图形控件Shape:参考代码
for i:=1 to 10 do
begin
myshape:=tshape.Create(self);
图象控件Image
(1)Image:在窗体中显示图形 (2)静态引用:窗体上放一个Image控件,Image控件的
autosize属性设置为true。 (3)动态引用: 方法一:通过调用过程。
procedure LoadFromFile(const FileName: string) virtual; 方法二:使用打开图片对话框。
end;
第6章 图形图像与多媒体技术
6.1 几何图形控件Shape 6.2 图象控件Image 6.3 画布(Canvas)对象
像素操作 画笔操作 画刷操作 6.4 PaintBox画板控件 6.5 多媒体程序设计 卡通控件 媒体播放器
画布(Canvas)对象
说明:画布(Canvas)对象应用程序的图形输 入。DELPHI中的 绘图,是将图形画在控件中 的画布上。
4. 画弧形曲线的方法
arc(x1,y1,x2,y2,x3,y3,x4,y4:integer);
5. 圆角矩形
roundrect(x1,y1,x2,y2,x3,y3:integer);
画布(Canvas)对象:画笔操作
使用Canvas属性基本作图方法,画出如图所示 的