Estrarre da un file FLAC i dati dell'immagine contenuta

Da Gambas-it.org - Wikipedia.
Versione del 4 giu 2024 alle 04:29 di Vuott (Discussione | contributi)

(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)

Un file audio di formato FLAC può mostrarsi sul desktop rappresentato con un'immagine (solitamente della copertina dell'album al quale il brano audio appartiene).
Ciò è possibile, poiché è previsto che il file audio FLAC possa contenere anche i dati del file dell'immagine che lo rappresenta.
Pertanto individuando i byte-dati iniziali e quelli finali del file immagine contenuto, è possibile estrarre tutti i dati del file immagine e salvarli separatamente.

Solitamente viene utilizzato il formato immagine jpeg, ed in particolare la comune versione di file immagine JPG, che ha, come byte iniziali, i valori FF D8 FF E0 00 10 4A 46 49 46 e sempre, come byte terminali, i valori FF D9.
Mostriamo di seguito un semplice e brevissimo codice esemplificativo per individuare i byte iniziali e finali di un file immagine formato JPG, per estrarne tutti i dati e salvarli in un file immagine a parte.

Public Sub Main()
 
 Dim s As String
 Dim ini, fin As Integer
 
 s = File.Load("/percorso/del/file/audio.flac")
 
 ini = InStr(s, "JFIF") - 6
 fin = InStr(s, "\xFF\xD9")
 
 s = Mid(s, ini, (fin - ini) + 1)
 
 File.Save("/tmp/file_immagine.jpg", s)
  
End

Va da sé che in caso di altro formato immagine, contenuto nel file audio flac, bisognerà comunque procedere in modo analogo, ossia individuare i byte iniziali e finali di tale file immagine, così da poter estrarre tutti i byte-dati del file immagine contenuto.