JuzaPhoto utilizza cookies tecnici e cookies di terze parti per ottimizzare la navigazione e per rendere possibile il funzionamento della maggior parte delle pagine; ad esempio, è necessario l'utilizzo dei cookie per registarsi e fare il login (maggiori informazioni).

Proseguendo nella navigazione confermi di aver letto e accettato i Termini di utilizzo e Privacy e preso visione delle opzioni per la gestione dei cookie.

OK, confermo


Puoi gestire in qualsiasi momento le tue preferenze cookie dalla pagina Preferenze Cookie, raggiugibile da qualsiasi pagina del sito tramite il link a fondo pagina, o direttamente tramite da qui:

Accetta Cookie Personalizza Rifiuta Cookie
RCE Foto






Login Logout Iscriviti a JuzaPhoto!

Per Esperti Informatici


  1. Forum
  2. »
  3. Computer, Schermi, Tecnologia
  4. » Per Esperti Informatici





avatarjunior
inviato il 21 Agosto 2017 ore 11:36    

Non chiedetemi perchè MrGreen ma ditemi comeSorriso

Devo trasformare una foto in una stringa di codice/bit/letteraparole sole cuore amore

la qualità è l'ultimo dei miei problemi.

ho convertito una foto in immagine vettoriale e da li con un semplice editor di testo posso leggere il codice ma, la perdita di qualità in rapporto al peso è troppa. dovrei avere 2/3 MB di peso in testo per apprezzarla in BN il che è impraticabile.

se solo ci fosse un modo di leggere il codice jpg avrei un file testo da 100/200 Kb e sarebbe una foto a colori con una discreta qualità molto superiore rispetto alla svg

c'è modo di farlo?
se non il jpg un qualsiasi formato che possa permettermi di trasformare in un codice una foto

avatarjunior
inviato il 21 Agosto 2017 ore 12:01    

Non è molto chiaro ciò che vuoi ottenere e, soprattutto, come ottenerlo.
Per trasformare un'immagine in una stringa in Java ci sono vari sistemi.
Un esempio potrebbe essere il seguente:

BufferedImage buffImage = ImageIO.read(new File("PATH_IMMAGINE/immagine.jpg"));
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(buffImage, "jpg", baos);
baos.flush();
byte[] imgBytes = baos.toByteArray();
baos.close();

String encodedFile = Base64.getEncoder().encodeToString(imgBytes);

dove encodedFile conterrà la stringa corrispondente alla codifica in base64 dell'immagine. Tramite un procedimento inverso è possibile riottenere l'immagine a partire dalla stringa così ottenuta.

Se non devi farlo tramite un linguaggio di programmazione allora non saprei.

avatarsenior
inviato il 21 Agosto 2017 ore 12:07    

In che modo hai convertito il raster in vettoriale?

avatarjunior
inviato il 21 Agosto 2017 ore 12:35    

Gundam con photoshop

Satifal è quel che cercavo base64 molto meglio rispetto al formato svg.
Il linguaggio non mi interessa può essere anche aramaico l importante è riottenere e poter vedere la foto. Cè qualcosa ancor più breve (come lunghezza testo) del base64?

avatarsenior
inviato il 21 Agosto 2017 ore 13:14    

Cè qualcosa ancor più breve (come lunghezza testo) del base64?


Qui c'è un elenco delle varie codifiche esistenti e la loro efficienza:

en.wikipedia.org/wiki/Binary-to-text_encoding

avatarjunior
inviato il 21 Agosto 2017 ore 13:20    

Come indicato da Ironluke ci sono veri tipi di codifica. Scegli quella che meglio si adatta alle tue esigenze.

avatarsenior
inviato il 21 Agosto 2017 ore 13:27    

La codifica base64 dovrebbe esser proprio quello che cerchi, come già ti hanno suggerito.
Ogni linguaggio di programmazione espone librerie per applicarla, quindi anche in questo è a mio avviso la più comoda.

Però se non la vuoi comprimere l'immagine, la lunghezza del testo che ne ricaverai rimarrà paragonabile alla dimensione dell'immagine originaria.
Il jpeg d'altronde è già compresso, e qualunque stringa ne potrai ricavare sarà a sua volta non (o poco) comprimibile (dell'ordine di pochi punti percentuali, a seconda del livello di compressione del jpeg). Quindi il flow che potresti seguire è: comprimi salvando un jpeg con qualità bassa fino al tuo limite inferiore accettabile, e poi ne fai il base64 salvandolo come testuale.

avatarjunior
inviato il 21 Agosto 2017 ore 16:42    

Esattamente quel che ho fatto
In risoluzione 1024
E abbattendo i bit colore. Potrei eventualmente farle in bn per recuperare ancora

Ora se lo comprimo con winrar (per esempio) dimezza il peso. Ma mi rimane il problema di "tradurlo in testo"

Quel che non mi quadra è che la foto da "tradurre" è un jpg di 52kb. Se la converto in base64 e salvando in txt acquisisce un peso di 72 kb

Comprimendola con winaar mi diventano entrambe di 40kb sia jpg che txt.
Quei 30kb sembran insignificanti ma sono ben 14.700 caratteri siccome devo proprio stringere sui caratteri avete soluzioni?

Per quanto riguarda eventuali librerie mi importa poco perchè deve essere una comunicazione da A e B entrambe saranno "provviste" di encoder e decoder quindi eventuali librerie non rappresentano un problema. L importante è che sia l encoder che il decoder possano lavorare offline una volta inserita la stringa


Diciamo che una stringa di 40kb che rappresenti una foto a 1024 a colori 8 bit sarebbe l ideale per quel che mi serve.

avatarsenior
inviato il 21 Agosto 2017 ore 17:01    

E se invece che dal jpg provi dalla bitmap (stessi parametri, 1024 & 8bit) converti in testo e poi lo comprimi con il rar?
La butto là... ma neanche tanto, perché quando si comprime e converte in sequenza spesso l'ordine dei passi cambia il risultato, a volte anche di molto...

PS sennò inviala compressa, avevi detto che 40Kb andavano bene no? :-P

avatarjunior
inviato il 21 Agosto 2017 ore 17:24    

Posso inviare solo testi è li il problema. Altrimenti usavo what's app o le email MrGreenMrGreen

Parli sempre bmp ---> base64?

avatarjunior
inviato il 21 Agosto 2017 ore 17:32    

Guarda, facendo qualche prova veloce non credo tu riesca a comprimere più di tanto. Se parti con un jpg il file di testo è ulteriormente comprimibile con winrar ma non di molto. Se parti da un bmp il file di testo sarà maggiormente comprimibile ma allo stesso tempo sarà di dimensioni maggiori essendo il file di partenza di dimensione maggiore.

ES: (stessa immagine jpg e bmp)

file jpg -> 115.634 byte -> text 139.264 byte -> rar 107.024 byte
file bmp -> 2.359.350 byte -> text 3.137.536 byte -> rar 1.320.326 byte


avatarjunior
inviato il 21 Agosto 2017 ore 17:58    

drive.google.com/file/d/0B4Sd_iG7XJgHeTVaV244X2huNDg/view?usp=sharing

questa è una foto esempio di che schifo di qualità voglio. nulla di eccezionale. in stile web cam dell anno 1400. son 51kb in jpg e in rar 40kb. se si potesse ridurre ancora tramite qualsiasi codice con libreria annessa o bho sarebbe buono.

immaginate che sia su plutone e devo mandare un mio selfie a bassa risoluzione sulla terra. e l'unico modo per farlo è scriverlo e si ha una connessione temporale per inviarla di pochi millisecondi. ovvio che potrei mandare anche 100GB di testo ma non si può. lo scopo è inviare il meno possibile. 40 kb mi sembran una dimensione corretta per una foto 1024. ora bisogna capire come ottenerla. base64 diventa 140kb, è una soluzione ma si può migliorare credo.

se per esempio si potesse leggere il codice "rar" credo che il problema sarebbe risolto se esiste qualcosa di migliore ancora meglio. ma attualmente non mi vengon idee

avatarjunior
inviato il 21 Agosto 2017 ore 18:25    

allur... jpg2000 da photoshop puoi impostare la dimensione del file di uscita. ed è nettamente migliore rispetto al classico jpg ad alta compressione stessa foto portata a 40kb in jpf ed è incomprimibile da winrar. il che credo siamo arrivati al minimo di dimensioni ottenibile. ovvero 40kb come dicevo.
ma trasformarli in testo non deve aggiungere dimensione. non avrebbe senso. dovrebbe rimanere sempre un testo di 40kb

avatarjunior
inviato il 21 Agosto 2017 ore 18:39    

www.base64-image.de/


trovata la soluzione.

messa in pasto qui il jpg da 52kb mi tira fuori (dopo aver spuntato ottimizza foto) una stringa da 40kb

il problema rimane che non è offline. e non ho un visualizzatore. ne ho uno ma quando vai a vedere le foto ti mostra un 70% il resto grigio come se fosse un file rovinato

avatarjunior
inviato il 21 Agosto 2017 ore 18:56    

L'encoding base64 aumenta le dimensioni del file del 33% perché per ogni tre byte del file originale ne genera quattro.
Non capisco però la necessità di convertire un file binario in un file "txt" per poi riconvertire il "txt" in un altro formato binario comprimendolo...

Che cosa ne pensi di questo argomento?


Vuoi dire la tua? Per partecipare alla discussione iscriviti a JuzaPhoto, è semplice e gratuito!

Non solo: iscrivendoti potrai creare una tua pagina personale, pubblicare foto, ricevere commenti e sfruttare tutte le funzionalità di JuzaPhoto. Con oltre 259000 iscritti, c'è spazio per tutti, dal principiante al professionista.





RCE Foto

Metti la tua pubblicità su JuzaPhoto (info)


 ^

JuzaPhoto contiene link affiliati Amazon ed Ebay e riceve una commissione in caso di acquisto attraverso link affiliati.

Versione per smartphone - juza.ea@gmail.com - Termini di utilizzo e Privacy - Preferenze Cookie - P. IVA 01501900334 - REA 167997- PEC juzaphoto@pec.it

www.juzaphoto.com - www.autoelettrica101.it

Possa la Bellezza Essere Ovunque Attorno a Me