关于超想
本站导航
邮件列表
  首页 | 本站产品 | Delphi资料 | 免费资源 | 程序人生 | 软件工程 | 网站设计 | 推荐网站
你所在的位置 -> 主页 -> 超想软件 -> 编程资料 -> delphi -> 开发技巧 -> 图形图像 ->详细
相关内容  
 
 
在程序运行期设置QUERY控件的PARAMS
 
【新品推荐】

  详细内容
 

如何把图标文件转换为位图文件
作者: 评价: 上站日期: 2001-05-09
内容说明:
来源:

  图 标 和 位 图 是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.

 
你所在的位置 -> 主页 -> 超想软件 -> 编程资料 -> delphi -> 开发技巧 -> 图形图像 ->详细
  首页 | 本站产品 | Delphi资料 | 免费资源 | 程序人生 | 软件工程 | 网站设计 | 推荐网站
声明:本站内容除注明原创以外均从网上摘抄,如有侵权请指明。
  如果您对我们的网站有什么意见或者建议,请与我们联系
powered by 建站易上手- V2.0