TBitmap/TIcon/TMetafile 基類LoadFromFile/SaveToFile),Graphic 屬性存取具體圖像Picture(TPicture)、AutoSize/Stretch 控制尺寸適應Canvas 繪圖面、Palette 調色板管理、Monochrome 黑白模式、Draw/StretchDraw 輸出主視窗含 TFileListBox、TImage、檢查框、TSpinEdit 控制尺寸/位置。核心邏輯:
procedure TImageForm.FileListBox1Click(Sender: TObject);
var FileExt: string[4];
begin
FileExt := UpperCase(ExtractFileExt(FileListBox1.FileName));
if FileExt in ['.BMP', '.ICO', '.WMF'] then
begin
Image1.Picture.LoadFromFile(FileListBox1.FileName);
Label1.Caption := ExtractFileName(FileListBox1.FileName);
if FileExt = '.BMP' then
begin
Label1.Caption := Label1.Caption + Format(' (%d x %d)', [Image1.Picture.Height, Image1.Picture.Width]);
ViewForm.Image1.Picture.Bitmap := Image1.Picture.Bitmap;
ViewAsGlyph(FileExt); // 同步到按鈕圖示
end;
if FileExt = '.ICO' then ViewForm.Image1.Picture.Icon := Image1.Picture.Icon;
if FileExt = '.WMF' then ViewForm.Image1.Picture.Metafile := Image1.Picture.Metafile;
end;
end;
procedure TImageForm.ViewAsGlyph(const FileExt: string);
begin
if CheckBox1.Checked and (FileExt = '.BMP') then
begin
SpeedButton1.Glyph := Image1.Picture.Bitmap;
SpeedButton2.Glyph := Image1.Picture.Bitmap;
BitBtn1.Glyph := Image1.Picture.Bitmap;
BitBtn2.Glyph := Image1.Picture.Bitmap;
end;
end;
procedure TImageForm.StretchCheckClick(Sender: TObject);
begin
Image1.Stretch := StretchCheck.Checked;
end;
procedure TViewForm.Button1Click(Sender: TObject);
begin
Printer.BeginDoc;
Printer.Canvas.Draw(Trunc(1.5*Image1.Left), Trunc(1.5*Image1.Top), Image1.Picture.Graphic);
Printer.EndDoc;
end;