Come si codifica un'immagine png in base64 usando python su Windows?base64 png in python su Windows
Quanto sopra funziona bene in Linux e OSX, ma su Windows codificherà i primi caratteri e quindi verrà interrotto. Perchè è questo?
Come si codifica un'immagine png in base64 usando python su Windows?base64 png in python su Windows
Quanto sopra funziona bene in Linux e OSX, ma su Windows codificherà i primi caratteri e quindi verrà interrotto. Perchè è questo?
open("icon.png", "rb")
Io non sono molto familiarità con Windows, ma mi immagino quello che sta succedendo è che il file contiene un carattere (0x1A) che Windows is interpreting as the end of the file (per motivi di eredità) quando viene aperto in modalità testo. L'altro problema è che l'apertura di un file in modalità testo (senza la 'b') su Windows causerà la riscrittura delle terminazioni di riga, che in genere interromperanno i file binari in cui quei caratteri non indicano effettivamente la fine di una riga.
Per aumentare la risposta da Miles, il first eight bytes in a PNG file sono appositamente progettati:
Il codice si ferma al la 1a, come progettato.
+1 perché funziona. – Brian
è davvero corretto, strano come funziona bene senza di esso in linux/osx – directedition
Linus/OSX trattano i file binari e di testo allo stesso modo, mentre Windows considera il ritorno a capo diverso nei file di testo rispetto ai file binari. Inoltre, dovresti fare clic sulla casella accanto alla sua risposta per contrassegnarla come risposta corretta. – Powerlord