Differenze tra le versioni di "Scaricare una immagine dal sito "Cover Art Archive" mediante le funzioni esterne della libreria libcoverart"
(2 versioni intermedie di uno stesso utente non sono mostrate) | |||
Riga 1: | Riga 1: | ||
− | '''Cover Art Archive''' <SUP>[[[#Note| | + | '''Cover Art Archive''' <SUP>[[[#Note|nota 1]]]</sup> è un progetto congiunto tra "''Internet Archive'' " e "''MusicBrainz'' ", il cui obiettivo è rendere le immagini di copertina disponibili per tutti su Internet in modo organizzato e conveniente. <SUP>[[[#Note|nota 2]]]</sup> |
− | E' possibile scaricare tali immagini attraverso un programma utilizzando le risorse del API di ''Coverart''. A tal fine è necessario avere installata nel sistema e richiamare in Gambas la libreria condivisa | + | E' possibile scaricare tali immagini attraverso un programma utilizzando le risorse del API di ''Coverart''. A tal fine è necessario avere installata nel sistema e richiamare in Gambas la libreria condivisa "''libcoverart.so.1.0.0''". |
Mostriamo un semplice esempio pratico. | Mostriamo un semplice esempio pratico. | ||
− | <BR>E' opportuno ricordare che al programma bisognerà passare la stringa identificatrice della foto da scaricare. Così se l'indirizzo dell'immagine è ''https | + | <BR>E' opportuno ricordare che al programma bisognerà passare la stringa identificatrice della foto da scaricare. Così se l'indirizzo dell'immagine è ''https://archive.org/details/mbid-2da72cb7-16d4-4dca-8818-a355b074a977'', va precisato che la stringa identificatrice del rilascio nel sito di ''Cover Art Archive'' è quella successiva a "mbid-", ossia nel nostro esempio: <FONT Color=#B22222>2da72cb7-16d4-4dca-8818-a355b074a977</font> . |
Library "libcoverart" | Library "libcoverart" | ||
Riga 14: | Riga 14: | ||
' ''Request the front image for a release.''</font> | ' ''Request the front image for a release.''</font> | ||
Private Extern caa_coverart_fetch_front(CoverArt As Pointer, ReleaseID As String) As Pointer | Private Extern caa_coverart_fetch_front(CoverArt As Pointer, ReleaseID As String) As Pointer | ||
− | |||
− | |||
− | |||
− | |||
<FONT Color=gray>' ''int caa_imagedata_size(CaaImageData ImageData) | <FONT Color=gray>' ''int caa_imagedata_size(CaaImageData ImageData) | ||
Riga 26: | Riga 22: | ||
' ''Return the data in a #CaaImageData object.''</font> | ' ''Return the data in a #CaaImageData object.''</font> | ||
Private Extern caa_imagedata_data(ImageData As Pointer) As Pointer | Private Extern caa_imagedata_data(ImageData As Pointer) As Pointer | ||
+ | |||
+ | <FONT Color=gray>' ''void caa_imagedata_delete(CaaImageData ImageData) | ||
+ | ' ''Delete a #CaaImageData object.''</font> | ||
+ | Private Extern caa_imagedata_delete(ImageData As Pointer) | ||
<FONT Color=gray>' ''void caa_coverart_delete(CaaCoverArt CoverArt) | <FONT Color=gray>' ''void caa_coverart_delete(CaaCoverArt CoverArt) | ||
Riga 32: | Riga 32: | ||
− | + | Public Sub Main() | |
Dim ca, ci As Pointer | Dim ca, ci As Pointer | ||
Riga 41: | Riga 41: | ||
<FONT Color=gray>' ''Si imposta la stringa identificatrice del rilascio dell'immagine, prescelta, nel sito di "Cover Art Archive":''</font> | <FONT Color=gray>' ''Si imposta la stringa identificatrice del rilascio dell'immagine, prescelta, nel sito di "Cover Art Archive":''</font> | ||
− | id = "<FONT Color= | + | id = "<FONT Color=red>2da72cb7-16d4-4dca-8818-a355b074a977</font>" |
ca = caa_coverart_new("esempio") | ca = caa_coverart_new("esempio") | ||
Riga 57: | Riga 57: | ||
<FONT Color=gray>' ''Con il Metodo ".Read()" il vettore legge e memorizza i dati presenti nell'area di memoria puntata dal Puntatore sopra restituito:''</font> | <FONT Color=gray>' ''Con il Metodo ".Read()" il vettore legge e memorizza i dati presenti nell'area di memoria puntata dal Puntatore sopra restituito:''</font> | ||
bb.Read(st, 0, bb.Count) | bb.Read(st, 0, bb.Count) | ||
− | + | ||
<FONT Color=gray>' ''Salva nella cartella /tmp l'immagine scaricata:''</font> | <FONT Color=gray>' ''Salva nella cartella /tmp l'immagine scaricata:''</font> | ||
File.Save("/tmp" &/ id & ".jpg", bb.ToString(0, bb.Count)) | File.Save("/tmp" &/ id & ".jpg", bb.ToString(0, bb.Count)) | ||
Riga 66: | Riga 66: | ||
caa_coverart_delete(ca) | caa_coverart_delete(ca) | ||
− | + | End | |
Versione attuale delle 14:52, 3 lug 2024
Cover Art Archive [nota 1] è un progetto congiunto tra "Internet Archive " e "MusicBrainz ", il cui obiettivo è rendere le immagini di copertina disponibili per tutti su Internet in modo organizzato e conveniente. [nota 2]
E' possibile scaricare tali immagini attraverso un programma utilizzando le risorse del API di Coverart. A tal fine è necessario avere installata nel sistema e richiamare in Gambas la libreria condivisa "libcoverart.so.1.0.0".
Mostriamo un semplice esempio pratico.
E' opportuno ricordare che al programma bisognerà passare la stringa identificatrice della foto da scaricare. Così se l'indirizzo dell'immagine è https://archive.org/details/mbid-2da72cb7-16d4-4dca-8818-a355b074a977, va precisato che la stringa identificatrice del rilascio nel sito di Cover Art Archive è quella successiva a "mbid-", ossia nel nostro esempio: 2da72cb7-16d4-4dca-8818-a355b074a977 .
Library "libcoverart" ' CaaCoverArt caa_coverart_new(const char *UserAgent) ' Create a new instance of #CaaCoverArt. Private Extern caa_coverart_new(UserAgent As String) As Pointer ' CaaImageData caa_coverart_fetch_front(CaaCoverArt CoverArt, const char *ReleaseID) ' Request the front image for a release. Private Extern caa_coverart_fetch_front(CoverArt As Pointer, ReleaseID As String) As Pointer ' int caa_imagedata_size(CaaImageData ImageData) ' Return the number of bytes in a #CaaImageData object. Private Extern caa_imagedata_size(ImageData As Pointer) As Integer ' unsigned char *caa_imagedata_data(CaaImageData ImageData) ' Return the data in a #CaaImageData object. Private Extern caa_imagedata_data(ImageData As Pointer) As Pointer ' void caa_imagedata_delete(CaaImageData ImageData) ' Delete a #CaaImageData object. Private Extern caa_imagedata_delete(ImageData As Pointer) ' void caa_coverart_delete(CaaCoverArt CoverArt) ' Delete a #CaaCoverArt object. Private Extern caa_coverart_delete(CoverArt As Pointer) Public Sub Main() Dim ca, ci As Pointer Dim id As String Dim qd As Integer Dim st As Stream Dim bb As Byte[] ' Si imposta la stringa identificatrice del rilascio dell'immagine, prescelta, nel sito di "Cover Art Archive": id = "2da72cb7-16d4-4dca-8818-a355b074a977" ca = caa_coverart_new("esempio") If ca = 0 Then Error.Raise("Errore !") ci = caa_coverart_fetch_front(ca, id) If ci = 0 Then Error.Raise("Errore !") qd = caa_imagedata_size(ci) If qd = 0 Then Error.Raise("Errore !") Print "Dimensione dell'immagine: "; qd; " byte" st = Memory caa_imagedata_data(ci) For Read bb = New Byte[qd] ' Con il Metodo ".Read()" il vettore legge e memorizza i dati presenti nell'area di memoria puntata dal Puntatore sopra restituito: bb.Read(st, 0, bb.Count) ' Salva nella cartella /tmp l'immagine scaricata: File.Save("/tmp" &/ id & ".jpg", bb.ToString(0, bb.Count)) ' Libera la memoria precedentemente occupata: st.Close caa_imagedata_delete(ci) caa_coverart_delete(ca) End
Note
[1] http://coverartarchive.org/
[2] https://archive.org/details/coverartarchive