2015年的時候,乖乖牛在線上線了圖片查看器的第一個版本,很多朋友反饋圖片查看器功能不錯,同時也反饋舊的查看器只能使用exe集成方式,同時僅支持瀏覽同一個目錄下的圖片,且順序不好指定。
在與一個朋友深入溝通,也認真研究了騰訊QQ的圖片查看器功能后,乖乖牛決定對圖片查看器進行升級;這里所說的升級,并不是對查看器核心功能進行調整,而是對控件的功能進行重構,將其模塊化、標準化;同時提供更加好友實用的接口。
經過一個多星期的開發與反復測試、打磨,牛牛圖片查看器2.0版本終于可以上線了,咱們不妨就叫它圣誕節版本吧。


這是一個完全通過Duilib來實現的一個圖片查看器,仿照QQ圖片查看器的效果實現,希望大家喜歡。
最新版本的圖片查看器已經支持在線的圖片,以及本地視頻和在線視頻的播放,歡迎咨詢!
圖片查看器2.0版本支持dll方式以及exe方式進行調用,功能一致(詳情的接口說明請參考下面頁面的說明文檔):
1. 通過dll接口方式調用,設置顯示方式、控制參數、圖片路徑集以及當前顯示序號
2. 通過命令行調用,傳遞圖片路徑、當前顯示序號等,如:
ViewerWrapper.exe 0*xxx*"E:\test\goal.bmp""E:\test\testjpg.jpg"*1
3. 在窗口上雙擊可關閉程序
額,好像也沒啥好說的,大致就是利用duilib的現有特性功能來實現,比如在放大時,計算出圖片的放大后的尺寸以及窗口的大小,進一步計算出存放圖片的容器的POS信息,設置就好。
我認為這里需要注意的是圖片在放大以后,通過鼠標拖動了圖片,再放大時,要能保持在現有的中心處放大,而不是以原始圖片的中心來放大或縮小;這樣可以保證被拖放后的圖片在二次放大或縮小時,整個是一個平滑的過程,也沒啥技術含量,就是一些坐標的計算了。
這種工具技術性不強,就是一些細節調試需要花費比較多的時間,以上全部應用duilib的功能實現,沒有自己寫一行繪圖的代碼,有幾點提一下:
1. 通過SetMouseEnabled來控制放大比例顯示的層不響應鼠標事件,這樣可以穿透在圖片上的層,不至于會影響到放大后圖片的位置拖放
2. 通過調整float控件的pos實現,支持負值的pos信息,通過設置pos信息來實現圖片的拖動
3. 圖片會被緩存,需要在翻轉及切換圖片時,先清理一下相應圖片的緩存 [paintmanager.RemoveImage(path)],防止切換后圖片不更新或更新錯
4. 至于其他窗口半透明啥的,咱們就不在這里討論了,網上信息很多了 ^_^
5. 其他...
更多信息,請訪問 http://www.ycsfddgy.com.cn/