⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 如何把图标文件转换为位图文件 (2001年4月5日).txt

📁 delphi 编程技巧
💻 TXT
字号:
如何把图标文件转换为位图文件 (2001年4月5日) 

网友更新  分类:数据库   作者: winfit(推荐)  推荐:winfit   阅读次数:184  
(http://www.codesky.net)  

--------------------------------------------------------------------------------
图 标 和 位 图 是WINDOWS 中 常 见 的 两 种 图 形 资 源, 在 开 发 应 用 程 序 时, 充 分 地 运 用 这 些 资 源 可 以 极 大 地 改 进 程 序 的 界 面, 增 强 软 件 的 实 现 效 果。 例 如 在DELPHI 中, 我 们 可 以 给 应 用 指 定 一 个 图 标, 给 位 图 命 令 按 钮 或 加 速 按 钮 指 定 一 个 位 图 等。 许 多 开 发 工 具 都 提 供 有 大 量 的 图 形 资 源, 包 括 位 图、 图 标、 光 标、 视 频 文 件 等, 比 如 在DELPHI、Visual Basic 5.0 中 就 提 供 有 大 量 的 位 图 和 图 标, 但 并 不 是 所 有 图 标 都 有 相 应 的 位 图 文 件, 有 时 我 们 有 使 用 位 图 文 件 时, 会 觉 得 某 个 图 标 的 图 形 更 合 适, 但 却 没 有 相 应 的 位 图 文 件 可 以 使 用, 例 如DELPHI 中 的 位 图 按 钮, 其Glyph 属 性 用 于 指 定 显 示 在 按 钮 中 的 位 图, 但 该 属 性 只 能 使 用 位 图 文 件(.bmp), 而 不 能 使 用 图 标 文 件(.ico), 在 这 种 情 况 下, 我 们 就 需 要 把 图 标 文 件 转 换 为 位 图 文 件。 

利 用DELPHI 来 实 现 这 样 的 转 换 是 非 常 方 便 的,DELPHI 把Windows 的 位 图 及 其 调 色 板 封 装 在Tbitmap 类 中, 把Windows 图 标 封 装 在Ticon 中, 我 们 只 需 把Tbitmap 和Ticon 的 属 性 和 方 法 作 些 简 单 应 用, 就 可 以 实 现 图 标 文 件 到 位 图 文 件 的 转 换。 

下 面 的 小 程 序 可 实 现 图 标 文 件 到 位 图 文 件 的 转 换, 它 能 够 把 所 给 定 的 图 标 文 件 转 换 为 同 名 的 位 图 文 件, 程 序 中 只 是 简 单 地 通 过 程 序 扩 展 名 来 判 断 图 标 文 件 和 位 图 文 件。 

各 部 件 及 其 主 要 属 性 设 置 如 下: 
部 件 属 性 属 性 值
Form1 Name ‘Form1’
Caption ‘ICO= >BMP’
StaticText1 Name ‘StaticText1’
Caption ‘ 图 标 文 件:’
Edit1 Name ‘Edit1’
Text ‘’
BitBtn_Browse Name ‘BitBtn_Browse’
Caption ‘ 浏 览...’
BitBtn_Convert Name ‘BitBtn_Convert’
Caption ‘ 转 换’
OpenDialog1 Name ‘OpenDialog1’
Filter ‘ 图 标 文 件(*.ico)|*.ico’

实 现 转 换 的 源 程 序 如 下 所 示: 

unit main;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,StdCtrls, Buttons;

type
TForm1 = class(TForm)
StaticText1: TStaticText;
BitBtn_Convert: TBitBtn;
OpenDialog1: TOpenDialog;
BitBtn_Browse: TBitBtn;
Edit1: TEdit;
procedure BitBtn_BrowseClick(Sender: TObject);
procedure BitBtn_ConvertClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;

implementation
{$R *.DFM}
procedure TForm1.BitBtn_BrowseClick(Sender: TObject);
begin
if opendialog1.Execute then
edit1.Text := opendialog1.filename; //读入的文件类型是*.ico
end;
procedure TForm1.BitBtn_ConvertClick(Sender: TObject);
var
Icon1:Ticon;
Bitmap1:Tbitmap;
FileName,FileExt:String;
begin
if FileExists(Edit1.Text) then
begin
FileExt:= ExtractFileExt(Edit1.Text);
if UpperCase(FileExt)='.ICO' then
begin //*.ico-----> *.bmp
FileName:=copy(edit1.text,0,pos('.ico',edit1.text)-1);
icon1:=ticon.create;
bitmap1:=tbitmap.create;
icon1.loadfromfile(edit1.text);
Bitmap1.Width := Icon1.Width;
Bitmap1.Height := Icon1.Height;
Bitmap1.Canvas.Draw(0, 0, Icon1 );
Bitmap1.SaveToFile(FileName+'.bmp');
Icon1.Free;
Bitmap1.Free;
ShowMessage('文件转换成功!');
end
else
ShowMessage('所给定的文件不是图标文件!');
end
else
ShowMessage('所给文件不存在!');

end;
end
 
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -