萬盛學電腦網

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

Flash AS3 進階視覺效果:ColorTransform 實現照片底片負片效果

利用 AS3 DisplayObject.transform.colorTransform 屬性,設置 RGB 乘數為 -1、偏移量為 255,巧妙繞過官方文檔「乘數 0-1」限制,一鍵將任意顯示對象轉為底片負片效果,並可水平鏡像修正方向。

核心原理

ColorTransform 計算公式(以紅色通道為例):

新紅色 = 舊紅色 × redMultiplier + redOffset
  • 官方文檔稱 redMultiplier 範圍 0-1,redOffset 範圍 0-255。
  • 實測發現:設 redMultiplier = -1, redOffset = 255 時,新紅色 = 255 - 舊紅色,完美實現通道反相(負片效果)。綠、藍、Alpha 同理。

製作步驟

  1. 匯入照片至庫,新建影片剪輯 photoMC 放入照片,回主場景拖入實例命名 photoMC。
  2. 複製一份 photoMC 水平並排,作為原圖對照。
  3. 為右側實例命名 film_mc(將製作負片)。
  4. 繪製底片邊框:黑色矩形 (Alpha 70-80%) 墊底,上下排列白色細長矩形(打孔孔位),對齊面板 取消相對舞台 → 水平居中分佈。
  5. 新增 actions 圖層,第 1 幀代碼:
film_mc.transform.colorTransform = new ColorTransform(-1, -1, -1, 1, 255, 255, 255, 0);
film_mc.scaleX = -1; // 水平鏡像,修正底片方向感

代碼解析

  • new ColorTransform(-1,-1,-1, 1, 255,255,255, 0):RGB 乘數 -1、偏移 255 → 全通道反相;Alpha 乘數 1、偏移 0 → 透明度不變。
  • scaleX = -1:水平鏡像,因底片感光面與原像方向相反,視覺更真實。

測試與擴展

  • Ctrl+Enter 即見右側照片變為經典底片負片效果(黑白反轉、彩色互補色)。
  • 可動態切換:按鈕點擊切換 colorTransform 為正常值 (new ColorTransform()) 與負片值。
  • 應用於:照片瀏覽器濾鏡、X 光效果、恐怖/懸疑風格轉場、色盲模擬等。

效能優勢

GPU 級像素運算,零 CPU 遍歷像素,單幀執行 < 1ms,可實時套用於視頻流、攝像頭畫面、大型圖片,無效能壓力。

此技巧展示了深入理解 Flash 渲染管線(ColorTransform 數學本質)後,能突破文檔限制創造實用視覺效果的高級用法。

copyright © 萬盛學電腦網 all rights reserved