Est-il possible de compresser un fichier crypté en Base64 PNG Chaîne?
J'ai une image PNG et a obtenu son Base64 PNG représentation sous forme de chaîne. C'est encore assez gros et j'aimerais savoir si il peut être beaucoup plus compressé. Est-il même possible?
Fond
Je suis en utilisant le Sélénium 2 (Java), pour créer une capture d'écran de la page web actuelle, de le convertir en base64 chaîne et envoyer la chaîne JavaScript exécuteur de recréer l'image et faire un peu de traitement d'image. Mais si la taille de la chaîne est trop grand, le serveur renvoie une Exception.
OriginalL'auteur Alp | 2012-03-19
Vous devez vous connecter pour publier un commentaire.
La réponse est simple: non - non sans perdre les "imprimable" chaîne de la nature
Généralement PNG utilise déjà de compression sophistiqué comme il est utilisé dans des fichiers ZIP. Par conséquent, la compression avant l'application de l'encodage base64 vous donnera très limité à la réduction de la taille.
L'application de la compression après l'encodage base64, il sera à des données binaires à nouveau - dans ce cas, vous pouvez simplement sauter l'étape de l'encodage base64.
Base64 agrandit les données par ~33%; une bonne compression peut obtenir de vous parler d'une réduction de 10% (max), en fonction de l'algorithme.
Je vous remercie beaucoup. Ce n'est pas suffisant pour mon usage, donc je dois réfléchir à une solution alternative. Peut-être diviser la chaîne en plusieurs morceaux.
Je me demandais ce que tu voulais dire par "imprimable de la chaîne de la nature". Pouvez-vous veuillez donner des précisions?
Une version imprimable de la Chaîne utilise que des caractères imprimables, par conséquent, beaucoup de caractères ne peut pas être utilisé. Caractères inutilisés signifie en fin de compte les bits non utilisés (basse entropie) et non pas à l'aide de bits est à l'opposé d'une compression (qui tente d'accroître l'maximiser/optimiser l'entropie).
OriginalL'auteur Robert
Si c'est un problème avec le réseau et pas vraiment de la taille de votre chaîne, cela a fonctionné pour moi, quand j'ai envoyé mes photos à une base de données mongo.
À l'aide de
Express.js
la limite de la bodyParser est, par défaut, 1056ksi vous pouvez résoudre le problème en modifiant la limite comme ci-dessous.
OriginalL'auteur Peter Evans