首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> Delphi

Delphi 圖形圖像程式設計進階:圖像物件與瀏覽器實作

     編輯:Delphi

圖像物件體系

  • TGraphic:TBitmap/TIcon/TMetafile 基類
  • TPicture:通用容器,可載入任意圖格式(LoadFromFile/SaveToFile),Graphic 屬性存取具體圖像
  • TImage:視覺元件顯示圖像,Picture(TPicture)、AutoSize/Stretch 控制尺寸適應
  • TBitmap:位圖操作核心,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;

按鈕圖示同步與 Stretch 效果

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;
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved