無意間看到 [1] 的資訊,有個叫做 aviutl 的工具,有提供 plugin 可以去除浮水印。
其實想想覺得也蠻有道理的,浮水印如果是半透明的話,透過收集不同畫面上的浮水印資訊
應該可以解析每個畫面的浮水印跟周遭的顏色差異,得到某一個特徵值
然後綜合每個有浮水印的畫面的特徵值,理論上可以得到 "近似" 浮水印原始顏色和形狀的特徵值
用這個特徵值去反向演算每個畫面上的浮水印,應該是有蠻高的機率可以讓浮水印消掉 8~9 成的顏色吧。
Software entities (class, modules, functions, etc.) should be open for extension, but closed for modification.
- Bertrand Meyer
Junior programmers create simple solutions to simple problems. Senior programmers create complex solutions to complex problems. Great programmers find simple solutions to complex problems.
- Charles Connell
註1:本部落格的範例程式碼在 2015 年以前的文章中,大多是以全型空白做縮排。如需服用,請自行用文字編輯器的取代功能把全型空白取代成半型空白。
註2:本部落格的內容授權請參閱部落格底部的授權宣告。
2013年5月31日 星期五
2013年5月30日 星期四
2013年5月24日 星期五
(書籤) 有關 MongoDB 的 AGPL-3.0 授權條款
今天被問到有關 AGPL-3.0 條款,是否需要讓專案 Open Source 的問題
稍微查了一下之後,發現 OpenFoundary 有蠻詳細的案例解說!
簡而言之,一般狀況下只要沒有對 MongoDB 的資料庫核心做任何修改,原則上並不需要跟著使用 AGPL-3.0 授權並開源。
稍微查了一下之後,發現 OpenFoundary 有蠻詳細的案例解說!
簡而言之,一般狀況下只要沒有對 MongoDB 的資料庫核心做任何修改,原則上並不需要跟著使用 AGPL-3.0 授權並開源。
2013年5月23日 星期四
Forking the JVM
由同事轉述的一篇文章,主要是因為發現我們開發的專案,在某些狀況下會拋出記憶體不足的錯誤,但記憶體使用量似乎還沒有用滿。
後來同事查到了這個可能性,因為我們專案中使用了不少 Runtime.exec() 去存取 Linux 的 Shell Script
這時就會出現 [1] 中描述的狀況,在 exec() 時會先完全複製目前的 JVM 的實體出來
導致在 Runtime.exec() 執行期間,JVM 會跟系統要求兩倍的記憶體,但是實際上可能用不到這麼多
如果這時 JVM 無法 allocate 足夠的記憶體,就會拋出記憶體不足的 Exception 了。
後來同事查到了這個可能性,因為我們專案中使用了不少 Runtime.exec() 去存取 Linux 的 Shell Script
這時就會出現 [1] 中描述的狀況,在 exec() 時會先完全複製目前的 JVM 的實體出來
導致在 Runtime.exec() 執行期間,JVM 會跟系統要求兩倍的記憶體,但是實際上可能用不到這麼多
如果這時 JVM 無法 allocate 足夠的記憶體,就會拋出記憶體不足的 Exception 了。
2013年5月20日 星期一
關於 Android 的 BroadcaseReceiver (1)
最近想寫個偵測 Wifi 狀態的服務,不過首先必須先讓服務能夠偵測到系統打開、關閉 Wifi
而要偵測到系統的通知,就必須先對系統註冊 BroadcastReceiver 事件。
而要偵測到系統的通知,就必須先對系統註冊 BroadcastReceiver 事件。
訂閱:
文章 (Atom)