TinyImage圖像處理庫(kù)
TinyImage 是一個(gè)輕量級(jí)的、開源的圖像處理庫(kù),支持 bmp、jpeg、png、tiff(多頁(yè))圖像的讀寫與轉(zhuǎn)換,支持 1、4、8、16、24、32 位的圖像及其不同位深之間的轉(zhuǎn)換,支持黑白、1 位灰、4 位灰、8位灰、8 位彩等 9 種顏色模式,支持50 多種基本的圖像處理功能,支持超大圖像,支持多頁(yè)TIFF文件,支持多線程。
編程語(yǔ)言:C++
運(yùn)行平臺(tái):windows(目前只支持該平臺(tái))
編譯工具:VS2017
上圖是TinyImage的架構(gòu)圖。最外層是C風(fēng)格的API,目前一共有68個(gè)接口供用戶使用;中間層是輸入輸出層,主要負(fù)責(zé)圖像文件的編解碼,目前支持bmp、jpeg、png、tiff四種格式;最內(nèi)層是TinyImage的內(nèi)核,無論什么格式的圖像,導(dǎo)入內(nèi)核后,都統(tǒng)一解碼成內(nèi)存DIB圖像,而且所有的圖像處理算法也在該內(nèi)核中。
V2.0.0更新內(nèi)容:
1.支持超大圖像,不再有內(nèi)存限制,圖像數(shù)據(jù)在內(nèi)存中分塊存儲(chǔ)
2.接口設(shè)計(jì)更加合理,圖像處理完畢后,返回新圖像的句柄,舊圖像仍舊可用
3.添加了DPI參數(shù)的獲取和設(shè)置接口
4.在支持像素級(jí)數(shù)據(jù)讀寫的基礎(chǔ)上,又添加了按行的方式的數(shù)據(jù)讀寫,每次可處理一行圖像數(shù)據(jù)
5.添加了幾個(gè)新的圖像處理算法接口
6.把圖像原點(diǎn)改成了左上角
7.添加了字符打印的接口
8.從win32升級(jí)到了x64
V2.0.1更新內(nèi)容:
1.修改了Tiny_SetPixel的接口功能,使之對(duì)于調(diào)色板圖像,能夠自動(dòng)修正傳進(jìn)來的顏色值
V2.0.2更新內(nèi)容:
1.添加了對(duì)多頁(yè)TIFF圖像的讀寫功能
2.添加了Tiny_Init()和Tiny_Uninit()兩個(gè)函數(shù)
3.給Tiny_Text()函數(shù)增加了水平打印或垂直打印的參數(shù)
4.給Tiny_Flood()函數(shù)增加了4領(lǐng)域填充或8領(lǐng)域填充的參數(shù)
V2.0.3更新內(nèi)容:
1.修改了Tiny_Text()的接口功能,若傳入的字體顏色和背景顏色相同,則背景顏色不起作用
2.添加了Tiny_Perspective()透視變換接口
3.添加了Tiny_MeanFilter()均值濾波接口
4.添加了Tiny_MedianFilter()中值濾波接口
5.添加了Tiny_Mix()圖像融合接口
V2.0.4更新內(nèi)容:
1.支持大于4G的TIFF文件的保存
2.添加了tiny_int和tiny_uint兩個(gè)自定義類型
3.修改了Tiny_GetPalette()接口的功能,以便更方便訪問調(diào)色板
V2.0.5更新內(nèi)容:
1.添加了Tiny_Merge()圖像拼接的功能
下圖是應(yīng)用該庫(kù)編寫的演示demo:
