我正在爲iPhone製作攝影應用程序,並將使用OpenGL將效果應用於圖像。現在我是一個OpenGL的noob,並想知道是否有一種方法來建立一個過濾器(飽和&模糊),可以很容易地扭轉?OpenGL中的非破壞性濾鏡
爲了解釋,用戶拍攝一張照片,然後應用5的模糊和飽和度3(任意值),但是然後返回並將其變爲3的模糊和飽和度2,結果是相同的,如果他給了原始圖像模糊3和飽和度2?
我正在爲iPhone製作攝影應用程序,並將使用OpenGL將效果應用於圖像。現在我是一個OpenGL的noob,並想知道是否有一種方法來建立一個過濾器(飽和&模糊),可以很容易地扭轉?OpenGL中的非破壞性濾鏡
爲了解釋,用戶拍攝一張照片,然後應用5的模糊和飽和度3(任意值),但是然後返回並將其變爲3的模糊和飽和度2,結果是相同的,如果他給了原始圖像模糊3和飽和度2?
保存原始圖像並將過濾器更改存儲爲可以在以後重播的指令數組。這也會給你選擇性的撤消能力。
您不能像模糊一樣重做濾鏡。這些濾鏡會丟失一些關於圖像的信息,因此很難將其還原。見discussion here。
使用OpenGL(或任何其他Api),您可以輕鬆地將濾鏡應用爲「後期處理」效果。只需將紋理渲染到某個渲染目標,然後將圖像轉換爲輸出。 這是一個link to oZone3D如何做到這一點。
您可以保存創建的輸出(但是作爲其他文件名!)。
非破壞性編輯API是不可知的,您可以使用OpenGL或軟件或其他任何東西來實現它,所有您真正需要做的就是撇開源數據而不是覆蓋它。您甚至可以將「歷史記錄」推回到磁盤以避免膨脹RAM和GPU內存。
從您的問題的上下文中,我可以假設您正在使用一些蘋果爲其API提供的即用即用功能,但這種情況下您依賴於庫存實施,所以您都陷入了破壞性的行爲,直到你自己想出更好的東西。