ImageVerifierCode 换一换
格式:DOC , 页数:43 ,大小:613KB ,
资源ID:9458621      下载积分:10 金币
验证码下载
登录下载
邮箱/手机:
图形码:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/9458621.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请。


权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4009-655-100;投诉/维权电话:18658249818。

注意事项

本文(API图像函数(delphi).doc)为本站上传会员【仙人****88】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

API图像函数(delphi).doc

1、WinAPI: ExtractIcon - 获取 EXE、DLL 或 ICO 文件中的图标 //声明: ExtractIcon( hInst: HINST; {调用函数的程序实例} lpszExeFileName: PChar; {文件路径; 文件可以是 *.exe、*.dll、*.ico} nIconIndex: UINT {图标索引} ): HICON; {返回图标句柄; 索引为 0 时返回第一个图标句柄; 索引为 #FFFFFFFF 时返回图标总数} //举例: unit Unit1; interface

2、 uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); end; var Form1: TForm1; implementation {$R *.dfm} uses ShellAP

3、I; {ExtractIcon 在其中声明} procedure TForm1.Button1Click(Sender: TObject); var ico: TIcon; i,count,x,y,w,h: Integer; FilePath: string; begin {随便找了个路径, 如果缺失会退出} FilePath := 'C:\Program Files\Macromedia\Fireworks 8\Fireworks.exe'; if not FileExists(FilePath) then begin ShowMessage('

4、文件不存在'); Exit; end; ico := TIcon.Create; x := 10; y := 10; w := 0; h := 0; Repaint; {先算出文件内的图标总数} count := ExtractIcon(HInstance, PChar(FilePath), HICON(-1)); for i := 0 to count - 1 do begin {循环提取图标} ico.Handle := ExtractIcon(HInstance, PChar(FilePath), i);

5、 {画出图标} Canvas.Draw(x,y,ico); {下面只是调整显示位置} if w < ico.Width then w := ico.Width; if h < ico.Height then h := ico.Height; x := x + ico.Width + 10; if x >= ClientWidth - w then begin x := 10; y := y + h + 10; end; end; ico.Free; end;

6、 end. //效果图: WinAPI: LoadBitmap - 从资源中载入位图 //声明: LoadBitmap( hInstance: HINST; {EXE 或 DLL 的句柄} lpBitmapName: PChar {资源标识符} ): HBITMAP; {返回位图句柄} 这里有示例 WinAPI: LoadCursor - 从资源中载入光标 //声明: LoadCursor( hInstance: HINST; {EXE 或 DLL 的句柄, 0 表示载入系统资源} lpC

7、ursorName: PChar {资源标识符} ): HCURSOR; {返回光标句柄} 这里有示例 //调用系统光标的例子: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Cli

8、ck(Sender: TObject); end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var cur: TIcon; begin cur := TIcon.Create; cur.Handle := LoadCursor(0, IDC_HAND); Canvas.Draw(11,11,cur); cur.Handle := LoadCursor(0, IDC_HELP);

9、 Canvas.Draw(44,11,cur); cur.Free; end; end. //效果图: //附系统光标列表: IDC_ARROW = MakeIntResource(32512); IDC_IBEAM = MakeIntResource(32513); IDC_WAIT = MakeIntResource(32514); IDC_CROSS = MakeIntResource(32515); IDC_UPARROW = MakeIntResource(32516)

10、 IDC_SIZE = MakeIntResource(32640); IDC_ICON = MakeIntResource(32641); IDC_SIZENWSE = MakeIntResource(32642); IDC_SIZENESW = MakeIntResource(32643); IDC_SIZEWE = MakeIntResource(32644); IDC_SIZENS = MakeIntResource(32645); IDC_SIZEALL = MakeIntResource(32646

11、); IDC_NO = MakeIntResource(32648); IDC_HAND = MakeIntResource(32649); IDC_APPSTARTING = MakeIntResource(32650); IDC_HELP = MakeIntResource(32651); WinAPI: LoadIcon - 从资源中载入图标 //声明: LoadIcon( hInstance: HINST; {EXE 或 DLL 的句柄, 0 表示载入系统资源} lpIconName: PChar {资源标识

12、符} ): HICON; {返回图标句柄} 这里有示例 //调用系统图标的例子: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject);

13、end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var ico: TIcon; i,x: Integer; begin ico := TIcon.Create; x := 10; for i := 32512 to 32517 do begin ico.Handle := LoadIcon(0, MakeIntResource(i)); Canvas.Draw

14、x,10,ico); Inc(x,ico.Width+10); end; ico.Free; end; end. //效果图: //附系统图标列表: IDI_APPLICATION = MakeIntResource(32512); IDI_HAND = MakeIntResource(32513); IDI_QUESTION = MakeIntResource(32514); IDI_EXCLAMATION = MakeIntResource(32515); IDI_ASTERISK = MakeIn

15、tResource(32516); IDI_WINLOGO = MakeIntResource(32517); IDI_WARNING = IDI_EXCLAMATION; IDI_ERROR = IDI_HAND; IDI_INFORMATION = IDI_ASTERISK; WinAPI: AlphaBlend - 图像透明度 AlphaBlend( DC: HDC; {目标设备环境句柄} p2, p3, p4, p5: Integer; {目标位置与宽高} DC6: HDC;

16、 {源设备环境句柄} p7, p8, p9, p10: Integer; {源位置与宽高} p11: TBlendFunction {合成方式的数据结构, 见下表} ): BOOL; //TBlendFunction 结构是 _BLENDFUNCTION 的重命名: _BLENDFUNCTION = packed record BlendOp: BYTE; {本例使用了: AC_SRC_OVER = 0} BlendFlags: BYTE; {必须为 0} SourceConsta

17、ntAlpha: BYTE; {透明度: 0..255} AlphaFormat: BYTE; {通常为 0,如果源位图为32位真彩色,可为 AC_SRC_ALPHA } end; 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls; type TFor

18、m1 = class(TForm) TrackBar1: TTrackBar; procedure FormCreate(Sender: TObject); procedure FormPaint(Sender: TObject); procedure TrackBar1Change(Sender: TObject); procedure FormDestroy(Sender: TObject); end; var Form1: TForm1; implementation {$R *.dfm} var

19、 Bit,BitBack: TBitmap; Transparency: Byte = 255; {透明度} procedure TForm1.FormCreate(Sender: TObject); begin {设定窗体背景} BitBack := TBitmap.Create; BitBack.LoadFromFile('c:\temp\Back.bmp'); Brush.Bitmap := BitBack; {调入图片} Bit := TBitmap.Create; Bit.LoadFromFile('c:\temp\test

20、bmp'); {给 TrackBar1 初始化} TrackBar1.Max := 255; TrackBar1.Min := 0; TrackBar1.ShowSelRange := False; TrackBar1.Position := TrackBar1.Max; end; procedure TForm1.FormPaint(Sender: TObject); var Blend: TBlendFunction; {定义 AlphaBlend 要使用的 TBlendFunction 结构} begin {给 TBlendFu

21、nction 结构赋值} Blend.BlendOp := AC_SRC_OVER; Blend.BlendFlags := 0; Blend.AlphaFormat := 0; Blend.SourceConstantAlpha := Transparency; Windows.AlphaBlend(Canvas.Handle, {因 VCL 有同名属性, 所以指定了是来自 Windows 单元} 10, 10, Bit.Wid

22、th + 10, Bit.Height + 10, Bit.Canvas.Handle, 0, 0, Bit.Width, Bit.Height, Blend ); end; procedure TForm1.TrackBar1Change

23、Sender: TObject); begin Transparency := TrackBar1.Position; Text := IntToStr(Transparency); Self.Repaint; {命令重绘} end; procedure TForm1.FormDestroy(Sender: TObject); begin Bit.Free; BitBack.Free; end; end. 窗体设计: object Form1: TForm1 Left = 352 Top = 238 Capti

24、on = 'Form1' ClientHeight = 209 ClientWidth = 211 Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'Tahoma' Font.Style = [] OldCreateOrder = False Position = poDesigned OnCreate = FormCreate OnDestroy = FormD

25、estroy OnPaint = FormPaint PixelsPerInch = 96 TextHeight = 13 object TrackBar1: TTrackBar Left = 0 Top = 186 Width = 201 Height = 24 TabOrder = 0 OnChange = TrackBar1Change end end 用 GDI 操作 EMF 文件[1]: CreateEnhMetaFile、CloseEnhMetaFile EMF 文件是 Windo

26、ws 下的增强图元文件, 本例用最简单的代码创建了一个 EMF 文件. CreateEnhMetaFile( DC: HDC; {所参照的 DC, 为 0 表示参照当前的显示设备} FileName: PChar; {文件名, 为 nil 表示创建内存文件} Rect: PRect; {外接矩形(单位是 0.1 毫米), 为 nil 表示使用最小矩形} Desc: PChar {描述性的说明文本, 可为 nil} ): HDC; unit Unit1; interface uses Windows, M

27、essages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObje

28、ct); const Path = 'C:\Temp\MyMetaFile.emf'; {CreateEnhMetaFile 创建文件时, 存在则覆盖} var MetaFileDC: HDC; {EMF 文件 DC} begin MetaFileDC := CreateEnhMetaFile(0, PChar(Path), nil, nil); {建立} Ellipse(MetaFileDC, 10, 10, 100, 60); {绘制} CloseEnhMetaFile(MetaFileDC);

29、 {关闭并保存} DeleteObject(MetaFileDC); end; end. 增强图元文件的相关函数: CloseEnhMetaFile {} CopyEnhMetaFile {} CreateEnhMetaFile {} DeleteEnhMetaFile {} EnhMetaFileProc {} EnumEnhMetaFile {} GdiComment

30、 {} GetEnhMetaFile {} GetEnhMetaFileBits {} GetEnhMetaFileDescription {} GetEnhMetaFileHeader {} GetEnhMetaFilePaletteEntries {} GetWinMetaFileBits {} PlayEnhMetaFile {} PlayEnhMetaFileRecord {} SetEnhMetaFil

31、eBits {} SetWinMetaFileBits {} 用 GDI 操作 EMF 文件[2]: PlayEnhMetaFile、DeleteEnhMetaFile 创建 EMF 文件, 并同时绘制在窗体. unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm

32、) Button1: TButton; procedure Button1Click(Sender: TObject); end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); const Path = 'C:\Temp\MyMetaFile.emf'; var MetaFileDC: HDC; {EMF 画布句柄} HMetaFile: HENHMETAFILE

33、 {EMF 文件句柄} begin MetaFileDC := CreateEnhMetaFile(0, PChar(Path), nil, nil); Ellipse(MetaFileDC, 10, 10, 100, 60); HMetaFile := CloseEnhMetaFile(MetaFileDC); {在窗体上按原始大小绘制 EMF} PlayEnhMetaFile(Canvas.Handle, HMetaFile, Rect(10,10,100,60)); DeleteObject(MetaFileDC); DeleteEn

34、hMetaFile(HMetaFile); end; end. 用 GDI 操作 EMF 文件[3]: GetEnhMetaFile unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender:

35、 TObject); end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); const Path = 'C:\Temp\MyMetaFile.emf'; {假定这个文件还在} var HMetaFile: HENHMETAFILE; {EMF 文件句柄} begin HMetaFile := GetEnhMetaFile(PChar(Path)); {打

36、开} PlayEnhMetaFile(Canvas.Handle, HMetaFile, Rect(10,10,100,60)); {重新绘制 EMF} DeleteEnhMetaFile(HMetaFile); end; end. 用 GDI 操作 EMF 文件[4]: 重绘 EMF 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, D

37、ialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure FormMouseMo

38、ve(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure FormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure Button1Click(Sender: TObject); end; var Form1: TForm1; implementation {$R *.dfm} var HMetaFile: HEN

39、HMETAFILE; f: Boolean; x1,y1: Integer; R: TRect; procedure TForm1.FormCreate(Sender: TObject); const Path = 'C:\Temp\MyMetaFile.emf'; begin HMetaFile := GetEnhMetaFile(PChar(Path)); end; procedure TForm1.FormDestroy(Sender: TObject); begin DeleteEnhMetaFile(HMetaFile); e

40、nd; procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin f := True; x1 := X; y1 := Y; R := Rect(x1,y1,X,Y); end; procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin if not f

41、 then Exit; DrawFocusRect(Canvas.Handle, R); R := Rect(x1,y1,X,Y); DrawFocusRect(Canvas.Handle, R); R := Rect(x1,y1,X,Y); end; procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin f := False; PlayEnhMetaFile(Canvas.Ha

42、ndle, HMetaFile, R); end; procedure TForm1.Button1Click(Sender: TObject); begin Refresh; end; end. 窗体文件: object Form1: TForm1 Left = 0 Top = 0 Caption = 'Form1' ClientHeight = 206 ClientWidth = 339 Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color

43、 = clWindowText Font.Height = -11 Font.Name = 'Tahoma' Font.Style = [] OldCreateOrder = False Position = poDesktopCenter OnCreate = FormCreate OnDestroy = FormDestroy OnMouseDown = FormMouseDown OnMouseMove = FormMouseMove OnMouseUp = FormMouseUp PixelsPerInch = 96

44、 TextHeight = 13 object Button1: TButton Left = 256 Top = 173 Width = 75 Height = 25 Caption = 'Button1' TabOrder = 0 OnClick = Button1Click end end 用 GDI 操作 EMF 文件[5]: GetEnhMetaFileDescription - 获取 EMF 文件的说明文本 再用 CreateEnhMetaFile 函数建立 EMF 文件时可以同时写入描

45、述性说明; 用 GetEnhMetaFileDescription 函数可以读出 EMF 文件的说明文本. 本例给的说明文本非常简单, 不过标准的说明文本的格式应该是: 程序名#0文件标题#0#0 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton;

46、 Button2: TButton; procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); end; var Form1: TForm1; implementation {$R *.dfm} var HMetaFile: HENHMETAFILE

47、 {EMF 文件句柄} {建立带说明的 EMF 文件} procedure TForm1.FormCreate(Sender: TObject); const Path = 'C:\Temp\MyMeateFile.emf'; Description = 'ABCDE'; {当作 EMF 文件的说明} var MetaFileDC: HDC; begin {建立并写入说明} MetaFileDC := CreateEnhMetaFile(0, PChar(Path), nil, PChar(Description)); {绘图} Rec

48、tangle(MetaFileDC, 11, 11, 111, 111); {结束编辑、保存文件, 并返回文件句柄} HMetaFile := CloseEnhMetaFile(MetaFileDC); {删除 DC} DeleteObject(MetaFileDC); end; {读取 EMF 文件的说明} procedure TForm1.Button1Click(Sender: TObject); var DescriptionSize: Integer; {说明段的大小} DescriptionBuf: PChar; {接受说明的内

49、存指针} begin {获取大小} DescriptionSize := GetEnhMetaFileDescription(HMetaFile, 0, nil); {分配内存} GetMem(DescriptionBuf, DescriptionSize); {获取说明} GetEnhMetaFileDescription(HMetaFile, DescriptionSize, DescriptionBuf); {显示说明} ShowMessage(DescriptionBuf); {ABCDE} {释放内存} FreeMem(D

50、escriptionBuf); end; {绘制在窗体} procedure TForm1.Button2Click(Sender: TObject); begin PlayEnhMetaFile(Canvas.Handle, HMetaFile, Rect(11,11,111,111)); end; {删除 EMF 文件句柄} procedure TForm1.FormDestroy(Sender: TObject); begin DeleteEnhMetaFile(HMetaFile); end; end. 用 GDI 操作 EMF 文件[

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服