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

DelphiX 圖形教學:使用 TDIB.DoTile 實現圖片平鋪效果

     編輯:Delphi

在 DelphiX 圖形程式開發中,TDIB.DoTile 方法提供了一種快速將位圖以平鋪方式填充繪圖區域的功能。這在製作遊戲背景、材質重複或介面裝飾時非常實用。本文將透過完整範例示範如何載入圖片並套用平鋪效果。

核心概念

DoTile 方法屬於 TDIB 類別,其宣告為 procedure DoTile(TileCount: Integer)。參數 TileCount 指定圖片在水平與垂直方向的重複次數。呼叫後,原始 DIB 位圖會被重繪為由多個原圖拼貼而成的大圖,尺寸會隨之放大。

完整範例程式碼

以下範例建立一個簡單的表單,包含一個 TDXPaintBox 與兩個按鈕:「載入圖片」與「套用平鋪」。

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DIB, StdCtrls;

type
  TForm1 = class(TForm)
    DXPaintBox1: TDXPaintBox;
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
const
  ImgPath1 = 'C:\Temp\DX.jpg';
begin
  // 1. 從檔案載入圖片到 DIB
  DXPaintBox1.DIB.LoadFromFile(ImgPath1);
  // 2. 調整 PaintBox 尺寸以完整顯示原圖
  DXPaintBox1.Width := DXPaintBox1.DIB.Width;
  DXPaintBox1.Height := DXPaintBox1.DIB.Height;
  // 3. 重繪顯示
  DXPaintBox1.Repaint;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  // 將目前 DIB 內容以 2x2 方式平鋪
  DXPaintBox1.DIB.DoTile(2);
  // 重繪以呈現效果
  DXPaintBox1.Repaint;
end;

end.

執行流程說明

  1. 點擊「載入圖片」:程式讀取 C:\Temp\DX.jpg,並將 TDXPaintBox 大小設為圖片原始尺寸,畫面顯示單張原圖。
  2. 點擊「套用平鋪」:呼叫 DoTile(2),原圖在水平與垂直方向各重複 2 次,形成 2x2 的拼貼圖。畫面隨即更新顯示平鋪後的結果。

注意事項

  • DoTile 會直接修改 DIB 內部像素資料,執行後原始圖片資料將被覆蓋。若需保留原圖,請先備份 DIB。
  • 平鋪後圖片尺寸會變為原寬高的 TileCount 倍,記得配合調整顯示控件大小或捲軸。
  • 本範例使用 DelphiX 元件庫,需專案中已正確安裝並引用 DIB 單元。

透過 TDIB.DoTile,開發者能以極少代碼實現圖片無縫平鋪,是 2D 遊戲背景渲染與介面美化的得力工具。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved