在0.2版的發布中,Nana提供了對PNG的支援,但是在預設狀態下,為了方便快捷地配置程式庫,Nana關閉了支援PNG的特性。
對PNG的支援,Nana C++ Library是使用的libpng(www.libpng.org)。因此,有兩個不同的策略來支援這一特性。
1,使用Nana庫附帶的libpng
2,使用作業系統中提供的libpng,這意味著我們需要自行地安裝libpng。
開啟對PNG的支援
開啟位於Nana包含目錄中的config.hpp標頭檔。我們可以找到一行類似這樣的注釋:
//#define NANA_ENABLE_PNG
通過撤消這個注釋來開啟對PNG的支援。現在,代碼看起來就像這樣:
#define NANA_ENABLE_PNG 1#if defined(NANA_ENABLE_PNG) //Comment it for using the libpng from operating system. #define NANA_LIBPNG 1#endif
保留#define NANA_LIBPNG,則使用Nana庫附帶的libpng。注釋這句就是用作業系統中提供的libpng。
預設情況下,Win32包的Nana庫是使用附帶的libpng,而Linux(X11)包則使用作業系統提供的。
配置完成之後,重新編譯Nana庫,然後來建立一個程式來顯示一個PNG圖片。
#include <nana/gui/wvl.hpp>#include <nana/gui/widgets/picture.hpp>#include <nana/gui/layout.hpp>int main(){ using namespace nana::gui; form fm; picture pic(fm); gird gd(fm); gd.push(pic, 0, 0); pic.load(STR(“a_png_file.png”)); fm.show(); exec();}
在Windows上,連結位於“%nana%/extrlib” 檔案夾中的libpng。
libpng.a: For Dev-C++ and Code::Blocks
libpng.md.lib/libpng.md.x64.lib: For VC and Multi-threaded DLL runtime library.
libpng.mt.lib/libpng.mt.x64.lib: For VC and Multi-threaded runtime library.
在Linux(X11)上,修改你的makefile,為編譯器添加一條"-lpng"