TDIB.DoSplitlight 是 DelphiX 中一個有趣的視覺特效方法,能將位圖產生類似「分光」或「光束掃過」的動態效果。這在遊戲過場動畫、場景轉場或特殊 UI 表現上頗具應用價值。本文提供完整範例說明其用法。
procedure DoSplitlight(Intensity: Integer):參數 Intensity 控制分光效果的強度或條數。數值越大,光束條紋越多、越密集,視覺上呈現更強烈的放射狀分割感。方法會直接操作 DIB 像素資料,產生類似全像圖干涉條紋的靜態圖案。
介面佈局與前例相同,僅將第二個按鈕的事件改為呼叫 DoSplitlight。
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
DXPaintBox1.DIB.LoadFromFile(ImgPath1);
DXPaintBox1.Width := DXPaintBox1.DIB.Width;
DXPaintBox1.Height := DXPaintBox1.DIB.Height;
DXPaintBox1.Repaint;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
// 套用分光特效,強度參數為 1
DXPaintBox1.DIB.DoSplitlight(1);
DXPaintBox1.Repaint;
end;
end.
DoSplitlight(1),圖片會瞬間轉換為帶有放射狀亮暗條紋的風格化圖像,彷彿光線穿過稜鏡折射。DoSplitlight,可製作簡易的「光束掃描」動畫。TDIB.DoSplitlight 以極簡單的 API 提供了極具辨識度的視覺特效,是 DelphiX 開發者工具箱中的一把利刃。