ok ragazzi sto vedendo domande da persone che chiedono come convertire gli array di byte in int
, string
, Stream
, ecc ... e le risposte a cui sono tutte diverse e io personalmente non trovato qualche risposta soddisfacente.Come convertire array di byte in qualsiasi tipo
Quindi, ecco alcuni tipi di cui vogliamo convertire una matrice di byte.
UnityEngine.Font
che può contenere dati ttf
.
UnityEngine.Testure2D
che h può prendere nei dati da file di immagini come .png
, .jpg
, ecc ...
Come avremmo convertire un array di byte a un String
, UnityEngine.Testure2D,UnityEngine.Font
, Bitmap
, ecc ...
I dati che popolano l'array di byte devono provenire da un tipo di file i cui dati possono essere gestiti dal tipo a cui vogliamo convertire l'array di byte?
È attualmente possibile?
Qualsiasi aiuto sarebbe apprezzato.
Un array di byte è proprio questo. È una serie di byte. Non c'è modo di sapere se quei byte appartengono a una stringa, un int, un 'UnityEngine.Font', ecc. Sono solo byte. Dovresti "deserializzare" i byte passando un parametro 'Type', in modo da sapere quale tipo di oggetto è. – Icemanind
ooooooh fantastico. puoi dare un esempio veloce? –
Non convertire mai un array di byte in una stringa a meno che non sia una stringa. Può davvero rovinare il codice. Chrs/Strings sono due oggetti byte in Net e devi stare attento a usare la codifica corretta. L'invio/ricezione dei dati avviene solitamente inviando un array di byte. Qualsiasi oggetto deve essere serializzato (ovvero convertito in byte) e quindi deserializzato. I dati binari come .png e jpg sono singolari matrici di byte e possono essere semplicemente convertiti in un array di byte. Gli oggetti complessi hanno bisogno di definizioni migliori delle dimensioni dei campi prima della serializzazione, in modo che possano essere de-serializzati correttamente. Questo è il motivo per cui vedi risposte diverse. – jdweng