关于流说的够多的了,基本上都是一个德行,这个时候可能查文档会收获更多一些。最近发现把图像文件以流的方式保存和读取蛮有意思的。
一、把wxImage转为wxMemoryOutputStream
#include <wx/wx.h> #include <wx/mstream.h> wxMemoryOutputStream& Img2Stream(wxString& filename) { wxImage img(filename); wxMemoryOutputStream out; img.SaveFile(out,wxBITMAP_TYPE_JPEG); return out; }
二、从wxMemoryInputStream里还原wxImage
wxImage& ImageFromStream(wxMemoryInputStream& in) { wxImage img; img.LoadFile(in,wxBITMAP_TYPE_JPEG); if(img.IsOk()) { return img; } else return NULL; }
或许你已经猜到了把图像文件转成流及从流里还原图像的一些使用场景:数据库。有空的时候会贴几篇关于wxWidgets与ODBC(分两个库wxODBC,DatabaseLayer来说)、sqlite3(wxSqlite3库)互操作的例子。