Come aggiungere byte di riempimento a una bitmap?
Domanda
Diciamo che ho dei dati raster che voglio scrivere su un file .. Ora voglio scriverli come file bmp ..
Sembra che questi dati non siano allineati a DWORD, che, se ho capito bene, deve essere riempito con abbastanza byte per raggiungere il prossimo DWORD ..
Tuttavia, quando provo a riempirlo con questo codice:
bmFile.Write(0x0, (4-(actualWidth%4)));
Ricevo un errore .. Se provo a eseguire il debug (sto usando MSVC ++ 6.0), la prossima istruzione punta a un ASSERT in CFile :: Write che asserisce che il primo parametro è NULL .. Quindi questo fallisce ..
Come devo pad? dovrei scrivere:
bmFile.Write("0x0"(4-(actualWidth%4)));
, invece? o sarebbe trattato alla lettera ...?
Grazie ..
Soluzione
Forse prova:
bmFile.Write("\0\0\0\0", (4-(actualWidth%4)));
Il tuo primo esempio è, come dici tu, il tentativo di scrivere dati a cui punta un puntatore null. Il tuo secondo esempio dovrebbe scrivere dai byte '0', 'x', '0' che hanno valori ASCII 0x30, 0x78, 0x30, che probabilmente non è quello che intendi.