TinyImage图像处理库
TinyImage 是一个轻量级的、开源的图像处理库,支持 bmp、jpeg、png、tiff(多页)图像的读写与转换,支持 1、4、8、16、24、32 位的图像及其不同位深之间的转换,支持黑白、1 位灰、4 位灰、8位灰、8 位彩等 9 种颜色模式,支持50 多种基本的图像处理功能,支持超大图像,支持多页TIFF文件,支持多线程。
编程语言:C++
运行平台:windows(目前只支持该平台)
编译工具:VS2017
上图是TinyImage的架构图。最外层是C风格的API,目前一共有68个接口供用户使用;中间层是输入输出层,主要负责图像文件的编解码,目前支持bmp、jpeg、png、tiff四种格式;最内层是TinyImage的内核,无论什么格式的图像,导入内核后,都统一解码成内存DIB图像,而且所有的图像处理算法也在该内核中。
V2.0.0更新内容:
1.支持超大图像,不再有内存限制,图像数据在内存中分块存储
2.接口设计更加合理,图像处理完毕后,返回新图像的句柄,旧图像仍旧可用
3.添加了DPI参数的获取和设置接口
4.在支持像素级数据读写的基础上,又添加了按行的方式的数据读写,每次可处理一行图像数据
5.添加了几个新的图像处理算法接口
6.把图像原点改成了左上角
7.添加了字符打印的接口
8.从win32升级到了x64
V2.0.1更新内容:
1.修改了Tiny_SetPixel的接口功能,使之对于调色板图像,能够自动修正传进来的颜色值
V2.0.2更新内容:
1.添加了对多页TIFF图像的读写功能
2.添加了Tiny_Init()和Tiny_Uninit()两个函数
3.给Tiny_Text()函数增加了水平打印或垂直打印的参数
4.给Tiny_Flood()函数增加了4领域填充或8领域填充的参数
V2.0.3更新内容:
1.修改了Tiny_Text()的接口功能,若传入的字体颜色和背景颜色相同,则背景颜色不起作用
2.添加了Tiny_Perspective()透视变换接口
3.添加了Tiny_MeanFilter()均值滤波接口
4.添加了Tiny_MedianFilter()中值滤波接口
5.添加了Tiny_Mix()图像融合接口
V2.0.4更新内容:
1.支持大于4G的TIFF文件的保存
2.添加了tiny_int和tiny_uint两个自定义类型
3.修改了Tiny_GetPalette()接口的功能,以便更方便访问调色板
V2.0.5更新内容:
1.添加了Tiny_Merge()图像拼接的功能
下图是应用该库编写的演示demo: