萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 軟體知識 >  >> 影像處理 >> Flash 教學

Flash 視覺特效:ColorTransform 矩陣實現底片負片效果

利用 AS3 DisplayObject.transform.colorTransform 屬性,配合 ColorTransform 類的紅/綠/藍/Alpha 乘數與偏移量,僅兩行代碼即可將任意顯示物件轉為底片負片效果(黑白反轉、色相互補)。原理簡單卻極具視覺衝擊力。

ColorTransform 核心公式

new ColorTransform(
    redMultiplier, greenMultiplier, blueMultiplier, alphaMultiplier,
    redOffset, greenOffset, blueOffset, alphaOffset
)

各通道計算公式:

新紅 = 舊紅 * redMultiplier + redOffset
新綠 = 舊綠 * greenMultiplier + greenOffset
新藍 = 舊藍 * blueMultiplier + blueOffset
新Alpha = 舊Alpha * alphaMultiplier + alphaOffset

官方文檔建議乘數範圍 0~1,偏移範圍 0~255。但**突破限制**設置:

  • RGB 乘數 = -1
  • RGB 偏移 = 255
  • Alpha 乘數 = 1,偏移 = 0(保持透明度)

代入公式:
新紅 = 舊紅 * (-1) + 255 = 255 - 舊紅 → 紅色通道反相。
綠、藍同理。三通道同時反相即得**底片負片效果**(互補色)。

完整實作代碼

// 假設舞台上有一影片剪輯實例名為 film_mc
film_mc.transform.colorTransform = new ColorTransform(-1, -1, -1, 1, 255, 255, 255, 0);
// 可選:水平翻轉修正底片左右反轉視覺習慣
film_mc.scaleX = -1;

製作步驟演示

  1. 導入圖片 → 新建影片剪輯包裝 → 拖入主場景,實例名 film_mc。複製一份並排對比(圖 1)。
  2. 繪製底部裝飾條:黑色半透明矩形 (Alpha 70-80%) 墊底,上方排列白色細長矩形(等間距分佈)模擬底片齒孔(圖 2)。

左右對比:原圖 vs 底片效果

底部裝飾條:黑色半透明基底 + 白色齒孔條

  1. 新增圖層,第 1 幀動作面板貼上上述兩行代碼。
  2. Ctrl+Enter 測試:右側圖片瞬間變為底片負片,配合齒孔裝飾極具質感。

擴展應用

  • 動態切換:按鈕切換 colorTransform 為正常/負片矩陣,做「底片現像」動畫。
  • 局部負片:配合遮罩層,僅對特定區域套用負片變換。
  • 色彩風格化:調整乘數/偏移組合產生交叉處理、高反差、單色調等濾鏡級效果,效能遠優於像素級操作。
  • GPU 加速:colorTransform 由 GPU 執行,不觸發 CPU 像素迴圈,適合實時視頻/遊戲特效。

為什麼乘數 -1 有效?

雖文檔建議 0~1,但 Flash Player 內部並未強制限制範圍,負乘數配合最大偏移恰好構成「通道反相」線性變換。這是一個被社區廣泛驗證的「非官方標準用法」,安全可靠。

copyright © 萬盛學電腦網 all rights reserved