2012年9月13日星期四

Ez看图更新了!

看了一暑假的《Effective C++》、《More Effective C++》,不动动手可不行。今天把今年年初写的EzViewer做了一下重构,去除一些无用的功能,新增了Windows下的文件格式关联,算个2.2版吧。还有很多想法没完成,今后还会慢慢改进的。项目地址:http://code.google.com/p/ezviewer/  ,可以用git check 出源码。  下载体验

下面是介绍:

EZ看图是一个简单的图片浏览器,使用Qt4编写,开源跨平台,国际化支持。 支持jpg, bmp, gif, png, jpeg, ico, svg, pbm, pgm, ppm, tif, tiff, xbm, xpm等多种图片格式。 特点有:
  • 采用统一绘图机制,可以旋转、镜像、缩放、拖动图片,包括动态gif。
  • 图片缩放显示时使用抗锯齿功能。
  • 图片缩放大于窗体时,鼠标左键快速拖动图片,释放鼠标后会依惯性滑动。
  • 可直接从资源管理器拖动一个或多个图片到看图器。
  • 动态gif可以暂停或步进。
  • 可自动隐藏的控制栏。
  • 自动播放/暂停功能。
  • 支持复制图片内容到剪贴板。
  • Windows下支持文件格式关联。 (New!)
  • 双击可以全屏。支持快捷键:
    1. 导航键上下左右、PageUp? / PageDown? 以及J/K:切换图片;
    2. O或N:打开图片对话框;
    3. Q或Esc:关闭图片;
    4. +/-:缩放图片;注意按住Ctrl时可以快速缩放,按住Shift时可以慢速缩放。
    5. 回车键:全屏显示;
    6. I:显示图片信息;
    7. D或Del:删除图片对话框;注意按住Ctrl时不会出现对话框,而是直接删除图片;
    8. Ctrl+C:复制图片内容到剪贴板;
    9. L/R:向左/右旋转90度;
    10. H/V:水平/竖直镜像图片;
    11. S:设置;
    12. 空格键/Pause:gif动画暂停/继续。
    13. F:gif动画暂停/步进。
    14. P:自动播放/暂停功能。
下图是同一张图片放大10倍时,不使用抗锯齿与使用抗锯齿的区别: 




文档信息


2012年9月10日星期一

Linux下时间计算与转换相关的类型和函数

最近忙于学院安排的实习,好久没有写博客了。。贴一下之前整理的Linux时间相关的东西,其中有些是来自C/C++标准库的:


Linux下日历时间相关的类型有:
    time_t               //算术类型
    struct tm           //分散时间结构
    struct timeval    //gettimeofday的结构


跟时间转换和计算相关的函数 (只写函数名,不是完整的原型。注释说明的是来自哪个头文件,以及相应的作用。下同):
    time                  //<time.h> ,  get time_t
    gettimeofday    //<sys/time.h> , get timeval
    localtime           //<time.h> , time_t --> tm
    gmtime             //<time.h> , time_t --> tm
    mktime             //<time.h> , tm --> time_t
    ctime                 //<time.h> , time_t --> string
    astime               //<time.h> , tm --> string
    strftime              //<time.h> , tm --> format string
    wcsftime            //<wchar.h> , tm --> format string
    getdate              //<time.h> , string --> tm
    strptime             //<time.h> , string --> tm

    difftime              //<time.h> , 计算time_t之差
    tzset                   //<time.h> , 设置时区



与程序执行时间相关的类型:
    clock_t               //以CLOCKS_PER_SEC或时钟滴答为单位
    struct timeval
    struct timespec   //<time.h>


测量时间间隔的函数:
    clock                   //<time.h> , 得到执行时间
    times                   //<sys/times.h> , 得到进程和子进程的执行时间


文档信息