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.leeqia.com/