Code: Select all
<img src="data:image/png;base64, iVBORw bla bla"/>
The following works super for me:
Code: Select all
wxString IconToDataURI(HICON hicon)
{
wxString ret;
//Create a wxIcon object:
wxSize size = wxGetHiconSize(hicon);
wxIcon tmpIcon;
tmpIcon.SetSize(size.x, size.y);
tmpIcon.SetHICON((WXHICON)hicon);
//And from that make a wxBitmap object:
wxBitmap bitmap;
bitmap.CopyFromIcon(tmpIcon);
wxImage img(bitmap.ConvertToImage());
//Which can save to a PNG file on disk:
wxBitmapType type = wxBITMAP_TYPE_PNG;
wxString prefix = wxT("pspng");
wxFileName fname;
fname.AssignTempFileName(prefix);
wxString fnames = fname.GetFullPath();
bool ok = img.SaveFile(fnames, type);
if (ok)
{
ret = wxT("src=\"data:image/png;base64,");
wxFile wf(fnames);
wxFileOffset ssize = wf.Length();
char* sbuffer = new char[ssize];
wf.Read(sbuffer, ssize);
wf.Close();
wxRemoveFile(fnames);
wxString enc = wxBase64Encode(sbuffer, ssize);
delete[] sbuffer; sbuffer = 0;
ret += enc;
ret += wxT("\"");
}
return ret;
}