Comment encoder une image png en base64 en utilisant python sous Windows? Ce qui précède fonctionne très bien sous Linux et OSX, mais sous Windows, il va encoder les premiers caractères puis couper court. Pourquoi est-ce?base64 png en python sous Windows
11
A
Répondre
26
open("icon.png", "rb")
Je ne suis pas très familier avec Windows, mais j'imagine ce qui se passe est que le fichier contient un caractère (0x1A) qui Windows is interpreting as the end of the file (pour des raisons historiques) lorsqu'il est ouvert en mode texte. L'autre problème est que l'ouverture d'un fichier en mode texte (sans le 'b') sous Windows entraînera la réécriture des terminaisons de ligne, ce qui casse généralement les fichiers binaires où ces caractères n'indiquent pas réellement la fin d'une ligne.
9
Pour augmenter la réponse de Miles, le first eight bytes in a PNG file sont spécialement conçus:
- 89 - le premier octet est un chèque qui bit 8 n'a pas été dépouillé
- "PNG" - laisser quelqu'un lire que c'est un format PNG
- 0d 0a - l'indicateur DOS bout de ligne , pour vérifier s'il y avait DOS-> conversion unix
- 1a - DOS en fin de fichier ombles tère, pour vérifier que le fichier a été ouvert en mode binaire
- 0a - caractère de fin de ligne unix, à vérifier s'il y avait un UNIX> conversion DOS
arrête Votre code à le 1a, tel que conçu.
Questions connexes
- 1. Transparence PNG TrayIcon sous Windows
- 2. Env Variables en Python (v3.0) sous Windows
- 3. Script Python - SCP sous Windows
- 4. favicon de codage en base64
- 5. J'ai un png encodé en base64, comment écrire l'image dans un fichier en PHP?
- 6. Comment convertir une image WMF en PNG ou JPG sous Windows en utilisant Perl?
- 7. Comment lancer un script python sous Windows?
- 8. Comment vérifier si je cours sous Windows en Python?
- 9. Déconnectez-vous ou changez d'utilisateur sous Windows en utilisant Python
- 10. Python: Verrouiller l'accès au répertoire sous Windows
- 11. Comment créer un PyMe (bibliothèque Python) Exécuter en Python 2.4 sous Windows?
- 12. Flex: Conversion d'un GUID en Base64
- 13. Windows Formulaire TreeView - Image PNG Fond
- 14. Comment convertir une clé publique base64/radix64 en un format pem en python
- 15. openGL en png
- 16. Comment lier C lib à python pour l'intégrer sous Windows?
- 17. WX Python et entrée brute sous Windows (WM_INPUT)
- 18. Python - Sous-processus - Comment appeler une commande Piped dans Windows?
- 19. Comment puis-je obtenir le chemin Python sous Windows?
- 20. Linq to XML (codé en Base64)
- 21. trouver des sous-chaînes en python
- 22. Django Shell raccourci sous Windows
- 23. Détecter la déconnexion de Windows en Python
- 24. Python PIL: comment écrire l'image PNG à la chaîne
- 25. wput sous Windows en ignorant --skip existant
- 26. Déplacement de fichiers sous python
- 27. Exécution d'un serveur Web Python en tant que service sous Windows
- 28. Erreur BitString sous Windows XP?
- 29. Convertir SVG en PNG en Ruby
- 30. Comment définir la variable LANG sous Windows?
+1 parce que cela fonctionne. – Brian
il est en effet correct, bizarre comment ça marche bien sans linux/osx – directedition
Linus/OSX traite les fichiers binaires et texte de la même façon, tandis que Windows traite le retour chariot différemment dans les fichiers texte que dans les fichiers binaires. En outre, vous devez cliquer sur la case à côté de sa réponse pour la marquer comme la bonne réponse. – Powerlord