?? 如何把圖標(biāo)文件轉(zhuǎn)換為位圖文件 (2001年4月5日).txt
字號(hào):
如何把圖標(biāo)文件轉(zhuǎn)換為位圖文件 (2001年4月5日)
網(wǎng)友更新 分類:數(shù)據(jù)庫(kù) 作者: winfit(推薦) 推薦:winfit 閱讀次數(shù):184
(http://www.codesky.net)
--------------------------------------------------------------------------------
圖 標(biāo) 和 位 圖 是WINDOWS 中 常 見(jiàn) 的 兩 種 圖 形 資 源, 在 開(kāi) 發(fā) 應(yīng) 用 程 序 時(shí), 充 分 地 運(yùn) 用 這 些 資 源 可 以 極 大 地 改 進(jìn) 程 序 的 界 面, 增 強(qiáng) 軟 件 的 實(shí) 現(xiàn) 效 果。 例 如 在DELPHI 中, 我 們 可 以 給 應(yīng) 用 指 定 一 個(gè) 圖 標(biāo), 給 位 圖 命 令 按 鈕 或 加 速 按 鈕 指 定 一 個(gè) 位 圖 等。 許 多 開(kāi) 發(fā) 工 具 都 提 供 有 大 量 的 圖 形 資 源, 包 括 位 圖、 圖 標(biāo)、 光 標(biāo)、 視 頻 文 件 等, 比 如 在DELPHI、Visual Basic 5.0 中 就 提 供 有 大 量 的 位 圖 和 圖 標(biāo), 但 并 不 是 所 有 圖 標(biāo) 都 有 相 應(yīng) 的 位 圖 文 件, 有 時(shí) 我 們 有 使 用 位 圖 文 件 時(shí), 會(huì) 覺(jué) 得 某 個(gè) 圖 標(biāo) 的 圖 形 更 合 適, 但 卻 沒(méi) 有 相 應(yīng) 的 位 圖 文 件 可 以 使 用, 例 如DELPHI 中 的 位 圖 按 鈕, 其Glyph 屬 性 用 于 指 定 顯 示 在 按 鈕 中 的 位 圖, 但 該 屬 性 只 能 使 用 位 圖 文 件(.bmp), 而 不 能 使 用 圖 標(biāo) 文 件(.ico), 在 這 種 情 況 下, 我 們 就 需 要 把 圖 標(biāo) 文 件 轉(zhuǎn) 換 為 位 圖 文 件。
利 用DELPHI 來(lái) 實(shí) 現(xiàn) 這 樣 的 轉(zhuǎn) 換 是 非 常 方 便 的,DELPHI 把Windows 的 位 圖 及 其 調(diào) 色 板 封 裝 在Tbitmap 類 中, 把Windows 圖 標(biāo) 封 裝 在Ticon 中, 我 們 只 需 把Tbitmap 和Ticon 的 屬 性 和 方 法 作 些 簡(jiǎn) 單 應(yīng) 用, 就 可 以 實(shí) 現(xiàn) 圖 標(biāo) 文 件 到 位 圖 文 件 的 轉(zhuǎn) 換。
下 面 的 小 程 序 可 實(shí) 現(xiàn) 圖 標(biāo) 文 件 到 位 圖 文 件 的 轉(zhuǎn) 換, 它 能 夠 把 所 給 定 的 圖 標(biāo) 文 件 轉(zhuǎn) 換 為 同 名 的 位 圖 文 件, 程 序 中 只 是 簡(jiǎn) 單 地 通 過(guò) 程 序 擴(kuò) 展 名 來(lái) 判 斷 圖 標(biāo) 文 件 和 位 圖 文 件。
各 部 件 及 其 主 要 屬 性 設(shè) 置 如 下:
部 件 屬 性 屬 性 值
Form1 Name ‘Form1’
Caption ‘ICO= >BMP’
StaticText1 Name ‘StaticText1’
Caption ‘ 圖 標(biāo) 文 件:’
Edit1 Name ‘Edit1’
Text ‘’
BitBtn_Browse Name ‘BitBtn_Browse’
Caption ‘ 瀏 覽...’
BitBtn_Convert Name ‘BitBtn_Convert’
Caption ‘ 轉(zhuǎn) 換’
OpenDialog1 Name ‘OpenDialog1’
Filter ‘ 圖 標(biāo) 文 件(*.ico)|*.ico’
實(shí) 現(xiàn) 轉(zhuǎn) 換 的 源 程 序 如 下 所 示:
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('文件轉(zhuǎn)換成功!');
end
else
ShowMessage('所給定的文件不是圖標(biāo)文件!');
end
else
ShowMessage('所給文件不存在!');
end;
end
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -