2022

Nov

30

Av Rolf

Vi arbetar en del med produktinformation i alla dess former och då även bilder. Många gånger behöver vi hämta en lista med bilder från en bildbank till en mapp lokalt på datorn för att enklare montera i Adobe Indesign, självklart med FileMaker. Ibland använder vi FileMaker som en väldigt kraftfull FTP-klient, drar-släpper ett antal bilder i ett FileMaker-fönster som döps om, kanske storleksförändras, och skickas till en webbserver. I det här lilla exemplet visar jag hur vi hämtar exempelbilder från Pixabay som vi använder som exempel i olika demo-syften.

Webbsajten Pixabay är bara en av många webbplatser som erbjuder bilder, de flesta kostnadsfritt om man anger källan. Jag har valt den för att deras API är enkelt.

Ofta behöver vi 4-5 bilder på t.ex. skruvar, verktyg, cyklar eller vad det nu kan vara för att göra några exempelsidor. Jag har gjort en enkel FileMaker-databas, egentligen hade jag inte behövt några tabeller eller fält men för att enkelt kunna söka har jag ett globalfält där jag skriver in kategorin jag vill söka efter. I databasen finns ett script som hämtar en lista med bilder från den valda kategorin från Pixabay, väljer slumpmässigt ut några stycken, storleksförändrar dem så att de inte blir för stora och sparar dem i en mapp på hårddisken. Att hämta t.ex. 5 bilder tar några sekunder (hastigheten beror förstås på dator, internet-uppkoppling etc.).

Scriptet ser ut så här:

De variabler som jag sätter på rad 3 och 4 är kategorin som söks (i det här fallet "Malmö") och antalet bilder (5) som ska hämtas.

På rad 6 hämtar jag en lista med bilder från Pixabay som motsvarar kategorin. Listan är i JSON-format och kan innehålla tusentals bilder, jag har medvetet valt att bara få de 100 första. Scriptet kan förstås utökas till att hämta alla om man så vill. Du behöver en API-nyckel som du får kostnadsfritt när du anmäler dig på Pixabays hemsida.

På rad 13 slumpar jag ett tal mellan 1 och antal hittade bilder, dock max 100, som jag använder för att hämta bilden. Ja, det kan bli dubbletter, men då kör jag scriptet en gång till :)

På rad 15 hämtar jag bilden. Länken till bilden finns i listan och hämtas med:

JSONGetElement ($bilder; "hits[x].largeImageURL")

x byts ut mot slumptalet.

Observera att jag hämtar bilden till en $-variabel (alltså inget container-fält) eftersom jag inte vill spara den i FileMaker alls. För att FileMaker ska veta att $-variabeln kommer att innehålla ett container-värde, i det här fallet en bild, behöver jag ange cURL-tillvalet "--FM-return-container-variable". Om jag inte gör det behandlar FileMaker den hämtade bilden som en lång textsträng. Just detta glömmer jag ofta...

På rad 16 använder jag funktionen GetThumbnail för att göra bilden mindre, i det här fallet max 400x400 pixlar.

På rad 17 sätter jag ihop filnamnet. Bilden sparas i mappen Hämtadebilder i min dokument-mapp och får som namn den valda kategorin följt av ett löpnummer (1-5 i det här fallet).

På rad 19-26 använder jag de från FileMaker 18 nya scriptstegen för att skriva/läsa filer. Jag raderar bilden om den redan finns och skriver den sedan till hårddisken.

De här är några av bilderna som hamnade i min dokument-mapp när jag körde scriptet.

Bilder hämtade från Pixabay.

Skriv en kommentar

Din epost-adress stannar hos oss.