wxImage to Zip file via stream. Possibile?
Domanda
Sto provando a scrivere un file zip usando wxZipOutputStream. Il codice proviene da questo forum e funziona con il file xml (quando ho usato wxTextOutputStream). Ora sto provando a includere un file di immagine ma la funzione SaveFile nella classe wxImage prevede una classe wxOutputStream ma wxTextOutputStream / wxDataOutputStream non ha una classe base, quindi non posso compilarlo. Voglio solo scrivere un file wxImage e un file xml su una zip. come posso procedere?
//convert stream to zip file.
wxFFileOutputStream out(m_loaded_filename.GetFullPath());
wxZipOutputStream zip(out);
// wxTextOutputStream txt(zip);
wxDataOutputStream txt(zip);
zip.PutNextEntry("my.xml");
txt << xmltext;
...
...
...
//value is wxImage*
//key is wxString
zip.PutNextEntry(key); //filename
if(value->IsOk())
{
value->SaveFile(zip); //compiler throws error.
}
Soluzione
sembra come se dovessi specificare il tipo di immagine nella archivio, prova:
value->SaveFile(zip, wxBITMAP_TYPE_PNG)
(L'estensione del file nella chiave
dovrebbe ovviamente essere .png)
Altri suggerimenti
Il tipo di casting funziona:
a valore > SaveFile ((wxOutputStream & amp;) zip);