Differenze tra le versioni di "Scaricare una immagine dal sito "Cover Art Archive" mediante le funzioni esterne della libreria libcoverart"
(Creata pagina con "'''Cover Art Archive''' <SUP>[[[#Note|Nota 1]]]</sup> è un progetto congiunto tra "''Internet Archive''" e "''MusicBrainz''", il cui obiettivo è rendere le immagin...") |
|||
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>' ''void caa_imagedata_delete(CaaImageData ImageData) | <FONT Color=gray>' ''void caa_imagedata_delete(CaaImageData ImageData) | ||
' ''Delete a #CaaImageData object.''</font> | ' ''Delete a #CaaImageData object.''</font> |
Versione delle 12:05, 15 set 2018
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 ' void caa_imagedata_delete(CaaImageData ImageData) ' Delete a #CaaImageData object. Private Extern caa_imagedata_delete(ImageData 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_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 l'immagine scaricata: File.Save("/tmp" &/ id & ".jpg", bb.ToString(0, bb.Count))
st.Close caa_imagedata_delete(ci) caa_coverart_delete(ca)http://coverartarchive.org/ End
Note
[1] http://coverartarchive.org/
[2] https://archive.org/details/coverartarchive