我正在尋找某種方法來為使用 JavaFX 的節點設定具有桶形失真效果(FishEye/FOV)的背景影像。我找到了帶有像素操作的演算法,但我想找到另一種方法(一些技巧)來實作它。此效果將用于創建此效果的節點背景高清影像變化影片(影片將是變化因子(功率/值/度?))。
uj5u.com熱心網友回復:
我想提供一種更高效(實時)的替代方法。任何基于直接像素操作的解決方案都注定是非常低效的,尤其是對于“高清影像”。
相反,我建議為此使用 TriangleMesh 并將影像用作其紋理。然后,您可以通過操縱紋理坐標來應用您喜歡的任何型別的失真。這種方法可以通過 JavaFX 場景圖輕松集成到任何 2D 圖形中。
我正在積極地使用這個概念來實時重新投影柵格地圖圖塊,所以我知道它是有效的。
uj5u.com熱心網友回復:
我將本著被問到的精神來回答這個問題,即沒有代碼。
JavaFX 有一個效果框架。
沒有內置的魚眼效果。
如果您是熟練的開發人員,您可以創建自己的自定義魚眼效果實作并將其插入效果框架。
更簡單的方法是使用帶有PixelWriter或Canvas的WritableImage應用您的演算法。也許這甚至可以使用ImageInput插入效果框架(如果您確實需要這樣做,您可能不需要這樣做)。
有關將演算法應用于輸入影像中的像素的示例,請參見:
- 減少顏色數量并獲得單個像素的顏色
當然,您將使用魚眼演算法(為 JavaFX 而不是鏈接實作編碼)進行魚眼變換。
要制作影片,請使用AnimationTimer,或者再次為熟練的開發人員創建插入JavaFX 影片框架的自定義過渡。
您可以向自定義效果添加屬性,并使用在您創建的自定義過渡上定義的其他屬性來操作它們。
提供完整的解決方案超出了 StackOverflow 答案的范圍。要獲得個別任務的幫助,請將問題分解為不同的部分,例如創建自定義效果、操作像素以創建魚眼、在影像或時間軸上制作效果影片等。撰寫代碼并詢問有關實際代碼的問題當您遇到困難時,您嘗試解決的問題部分的最小示例。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/417626.html
標籤:
下一篇:JS條件與map和reduce
