È ansible comprimere ulteriormente una string PNG Base64?

Ho un'image PNG e ho ottenuto la sua rappresentazione di string PNG di Base64. È ancora abbastanza grande e vorrei sapere se può essere significativamente ulteriormente compresso. È anche ansible?

background

Sto utilizzando Selenium 2 (Java) per creare uno screenshot della pagina web corrente, convertirlo come string base64 e submit quella string all'esecutore JavaScript per ricreare quella image e fare qualche elaborazione delle immagini. Ma se la dimensione della string è troppo grande, il server restituisce un'exception.

La semplice risposta: No – non senza perdere la natura "string printingbile"

Normalmente PNG utilizza già una compressione sofisticata come se fosse utilizzata nei file ZIP. Quindi la compressione prima di applicare la codifica base64 ti darà solo una riduzione di size limitate.

Applicare la compressione dopo la codifica base64 lo farà di nuovo a dati binari – in questo caso si potrebbe saltare semplicemente il passaggio di codifica base64.

Se è un problema con la networking e non proprio la dimensione della tua string, questo ha funzionato per me quando ho inviato le mie immagini a un database mongo.

Utilizzando Express.js il limite del bodyParser è di default a 1056k in modo da poter risolvere il problema modificando il limite come sotto.

 app.use(bodyParser.urlencoded({ limit: '50mb', extended: true })); app.use(bodyParser.json({ limit: '50mb' }));