Buongiorno a tutti, sto utilizzando un pc per inviare immagini a un telefono android, nel pc utilizzo B4J, mentre nel telefono B4A, la procedura che eseguo per inviare l'immagine dal pc al telefono è la seguente:
- leggo i byte del file immagine presente sul pc utilizzando
Buffer = Bit.InputStreamToBytes(File.OpenInput(IndirizzoFoto ,""))
- invio i byte al telefono utilizzando
AStreams.Write(Buffer)
non uso il WriteStream perché ho necessità di evitare il salvataggio del file nel telefono, quindi una volta ricevuti i byte li converto in immagine e dovrei visualizzarla, invece succede che seppur il numero di byte inviati sia corretto, e il valore di ogni singolo byte idem, quando effettuo la lettura dell'immagine utilizzando la seguente funzione mi restituisce un errore di caricamento bitmap al punto btm.Initialize2(in):
Mentre se faccio l'opposto utilizzando lo stesso sistema, quindi invio un immagine dal telefono al pc, tutto funziona, lo stesso vale se provo convertire il buffer di byte nel pc in un immagine mediante il codice sopra esposto, la posso imprimere in una imageview e la vedo.
Ho provato a visualizzare i byte ricevuti dal telefono in formato numerico ed è tutto ok, ogni byte è lo stesso che visualizzo nel pc, ma se provo a visualizzarli convertendoli in caratteri nel telefono alcuni non sono gli stessi che vedo nel pc, sembra essere un errore di codifica, avete qualche idea su come risolvere?
- leggo i byte del file immagine presente sul pc utilizzando
Buffer = Bit.InputStreamToBytes(File.OpenInput(IndirizzoFoto ,""))
- invio i byte al telefono utilizzando
AStreams.Write(Buffer)
non uso il WriteStream perché ho necessità di evitare il salvataggio del file nel telefono, quindi una volta ricevuti i byte li converto in immagine e dovrei visualizzarla, invece succede che seppur il numero di byte inviati sia corretto, e il valore di ogni singolo byte idem, quando effettuo la lettura dell'immagine utilizzando la seguente funzione mi restituisce un errore di caricamento bitmap al punto btm.Initialize2(in):
B4X:
Private bmp As Bitmap
Private in As InputStream
in.InitializeFromBytesArray(Buffer,0,Buffer .Length-1)
bmp.Initialize2(in)
Return bmp
Mentre se faccio l'opposto utilizzando lo stesso sistema, quindi invio un immagine dal telefono al pc, tutto funziona, lo stesso vale se provo convertire il buffer di byte nel pc in un immagine mediante il codice sopra esposto, la posso imprimere in una imageview e la vedo.
Ho provato a visualizzare i byte ricevuti dal telefono in formato numerico ed è tutto ok, ogni byte è lo stesso che visualizzo nel pc, ma se provo a visualizzarli convertendoli in caratteri nel telefono alcuni non sono gli stessi che vedo nel pc, sembra essere un errore di codifica, avete qualche idea su come risolvere?