WordPress EXIF-tietojen hyödyntäminen
Digikuvan mukana voi kulkea paljon enemmän tietoa kuin pelkkä pikselikuva. Kameralla tai puhelimella otettuun kuvaan voidaan tallentaa esimerkiksi kuvausaika, kameran malli, polttoväli, valotusasetukset ja GPS-sijainti.
Näitä tietoja kutsutaan yleensä EXIF-metadataksi.
WordPress käsittelee kuvia osana Media Librarya ja voi hyödyntää kuvien metatietoja esimerkiksi attachment-tietojen yhteydessä. Kehittäjälle EXIF avaa mahdollisuuksia automaattiseen kuvien luokitteluun, hakuihin, arkistointiin ja sisällön rikastamiseen. Samalla mukana on tärkeä tietosuojaongelma: kuvaan tallennettu sijainti voi paljastaa kuvaajan tai kuvauskohteen tarkan sijainnin.
Mikä EXIF on?
EXIF tulee sanoista Exchangeable Image File Format. Se on kuvien metadataan liittyvä standardi, jota käytetään erityisesti digikameroissa ja älypuhelimissa.
EXIF voi sisältää esimerkiksi:
- kameran valmistajan
- kameran mallin
- kuvausajan
- valotusajan
- aukon
- ISO-arvon
- polttovälin
- objektiivin tietoja
- kuvan orientaation
- GPS-koordinaatit
Kaikissa kuvissa ei kuitenkaan ole EXIF-tietoja. Tiedot voivat myös kadota kuvankäsittelyn, viennin tai optimoinnin yhteydessä.
EXIF ja WordPress Media Library
Kun kuva ladataan WordPressiin, siitä muodostuu attachment.
WordPress voi muodostaa kuvalle myös metadataa, jota käytetään esimerkiksi:
- kuvan mittoihin
- kuvakokoihin
- tiedoston sijaintiin
- kuvan teknisiin tietoihin
EXIF-tietojen hyödyntäminen kannattaa kuitenkin erottaa WordPressin omasta attachment-metadatasta. Kaikki kameran EXIF-tiedot eivät automaattisesti muutu WordPressin käytettäväksi sisältödataksi.
Mihin EXIF-tietoja voidaan käyttää?
EXIF:n avulla voidaan rakentaa esimerkiksi valokuvaussivustolle automaattisia toimintoja.
Kuvaan liittyviä tietoja voidaan käyttää:
- valokuvien lajitteluun
- kuvausajan näyttämiseen
- kamerakaluston esittämiseen
- kuvauspaikan näyttämiseen
- kuva-arkiston suodattamiseen
- kuvauskaluston analysointiin
- automaattiseen kategorisointiin
Esimerkiksi valokuvaajan portfolio voisi näyttää kuvan yhteydessä:
Kamera: Canon EOS R6
Polttoväli: 85 mm
ISO: 400
Aukko: f/2.0
EXIF:n lukeminen PHP:llä
PHP tarjoaa EXIF-tietojen lukemiseen exif_read_data()-funktion.
Esimerkiksi:
EXIF-laajennuksen pitää olla palvelimella käytettävissä, jotta tämä toimii.
Tuotantoympäristössä kannattaa aina käsitellä tilanne, jossa:
- EXIF puuttuu
- tiedosto ei ole tuettu
- metadata on puutteellinen
- EXIF-rakenne on odottamaton
WordPressissä EXIF kannattaa käsitellä hallitusti
Jos EXIF-tietoja käytetään WordPressissä, niitä ei yleensä kannata ripotella suoraan template-tiedostoihin.
Parempi rakenne on esimerkiksi:
Attachment → EXIF-luku → validointi → tarvittavien tietojen tallennus → käyttö käyttöliittymässä
Näin EXIF:n käsittely pysyy erillään ulkoasusta.
EXIF-tietojen tallentaminen post metadataksi
Tarvittavat tiedot voidaan tallentaa attachmentin post metadataksi.
Esimerkiksi:
Samalla tavalla voidaan tallentaa esimerkiksi polttoväli tai ISO-arvo.
Kaikkea EXIF-dataa ei kuitenkaan kannata kopioida WordPressin tietokantaan. Jos vain kolme kenttää tarvitaan hakua varten, yleensä on järkevämpää tallentaa vain ne.
EXIF:n käyttäminen kuvahakuun
EXIF-metadatasta voidaan rakentaa oma hakujärjestelmä.
Käyttäjä voisi esimerkiksi hakea:
- kaikki Canonilla otetut kuvat
- kaikki 85 mm:n kuvat
- ISO 1600 -kuvat
- tietyn vuoden kuvat
- tietyllä kameralla otetut kuvat
Tällaisessa ratkaisussa EXIF-tiedot kannattaa normalisoida omiin kenttiinsä sen sijaan, että jokaista hakua varten luetaan alkuperäinen kuvatiedosto uudelleen.
EXIF ja kuvauspaikka
GPS on EXIF:n kiinnostavimpia mutta samalla arkaluonteisimpia tietoja.
Kuva voi sisältää esimerkiksi:
- leveysasteen
- pituusasteen
- korkeustiedon
Näistä voidaan muodostaa kartalle tarkka kuvauspaikka.
Teknisesti tämä on helppoa, mutta tietosuojan näkökulmasta tilanne on aivan toinen.
GPS-tiedot voivat paljastaa liikaa
Puhelimella otettu kuva voi sisältää tarkan sijainnin esimerkiksi:
- kodista
- mökistä
- työpaikalta
- lapsen koulusta
- yksityisestä tapahtumasta
Jos kuva julkaistaan avoimesti verkossa alkuperäisine EXIF-tietoineen, sijainti voi päätyä myös ulkopuolisten saataville.
Siksi GPS-EXIF:n julkaisemiseen pitää suhtautua erityisen varovaisesti.
EXIF:n poistaminen ennen julkaisua
Yksi turvallinen vaihtoehto on poistaa arkaluonteinen EXIF ennen kuvan julkaisemista.
Prosessi voi olla esimerkiksi:
Alkuperäinen kuva → EXIF-analyysi → arkaluonteisten tietojen poisto → WordPress Media Library
Tämä on erityisen järkevää sivustoilla, joissa kuvia lataavat tavalliset käyttäjät.
EXIF ja GDPR
EXIF voi sisältää henkilötietoihin liittyviä tietoja.
Erityisen merkityksellisiä ovat:
- GPS-sijainti
- kuvausaika
- laitteen tiedot
- mahdolliset kuvaajaan yhdistettävät tunnisteet
Jos verkkosivustolle ladataan käyttäjien kuvia, kannattaa selvittää etukäteen, mitä metadataa julkaistaan.
Tietosuojan kannalta hyvä periaate on:
Säilytä vain metadata, jolle on todellinen käyttötarkoitus.
EXIF ja WordPressin optimointilisäosat
Kuvien optimointi voi muuttaa myös metadataa.
Kun kuva käsitellään esimerkiksi:
- WebP-muotoon
- AVIF-muotoon
- pienempään kokoon
- pakattuun JPEG-muotoon
alkuperäiset EXIF-tiedot voivat säilyä, muuttua tai poistua käytetystä työkalusta riippuen.
Jos sivusto tarvitsee EXIF-tietoja myöhemmin, tämä pitää huomioida optimointiprosessissa.
EXIF ja automaattinen kuvien luokittelu
EXIF:n avulla voidaan rakentaa automaattista luokittelua.
Esimerkiksi:
tai:
Tällainen automaatio voi olla hyödyllinen erityisesti suurissa kuva-arkistoissa.
EXIF ja kuvausajan perusteella järjestäminen
Kuvan WordPress-upload-päivä ei välttämättä ole sama kuin kuvan ottamispäivä.
Esimerkiksi vanha valokuva voidaan ladata sivustolle vuonna 2026, vaikka se olisi otettu vuonna 2019.
EXIF:n DateTimeOriginal voi tällaisessa tapauksessa antaa paremman tiedon varsinaisesta kuvausajasta.
Tästä voidaan rakentaa esimerkiksi:
2019 → Kesä → Helsinki → tapahtumakuvat
EXIF:n normalisointi
Jos EXIF-tietoja käytetään hakuihin, ne kannattaa normalisoida.
Esimerkiksi kameran nimi voi esiintyä eri muodoissa eri tiedostoissa.
Tietokantaan voidaan tallentaa erikseen:
Tällöin hakujen ja suodatusten rakentaminen on helpompaa.
EXIF:n näyttäminen käyttöliittymässä
EXIF-tiedot voidaan näyttää esimerkiksi kuvan yhteydessä.
Kaikkia tietoja ei kuitenkaan tarvitse näyttää. Käyttöliittymä kannattaa suunnitella käyttäjän tarpeen mukaan.
EXIF ja suorituskyky
Jos sivustolla on tuhansia kuvia, EXIF:n lukeminen jokaisella sivulatauksella olisi tehotonta.
Huono toteutus voisi tehdä näin:
Sivu avataan → 50 kuvaa → 50 tiedostoa avataan → EXIF luetaan jokaisesta
Parempi ratkaisu on lukea EXIF kerran uploadin aikana ja tallentaa tarvittavat tiedot tietokantaan.
Tällöin sivun latauksessa voidaan tehdä tavallinen metadatahaku.
EXIF:n käsittely upload-vaiheessa
WordPressin upload-prosessiin voidaan liittää oma toiminto, joka käsittelee kuvan heti latauksen jälkeen.
Prosessi voisi olla:
- käyttäjä lataa kuvan
- WordPress luo attachmentin
- EXIF luetaan
- tarvittavat kentät validoidaan
- tiedot tallennetaan
- arkaluonteiset tiedot poistetaan tarvittaessa
Näin raskasta EXIF-analyysiä ei tarvitse tehdä myöhemmin jokaisella sivulatauksella.
EXIF:n poistaminen
Jos tavoitteena on yksityisyyden suojaaminen, EXIF:n poistaminen kannattaa tehdä kuvankäsittelytyökalulla tai tarkoitukseen suunnitellulla kirjastolla.
Erityisesti kannattaa harkita ainakin:
- GPS-tietojen poistamista
- laitteen tunnistetietojen poistamista
- kuvaajan kannalta tarpeettomien tietojen poistamista
Kaikkea metadataa ei välttämättä tarvitse poistaa, jos osa tiedoista palvelee sivuston käyttötarkoitusta.
Yleisimmät virheet
EXIF:n hyödyntämisessä tehdään helposti muutamia virheitä.
Tyypillisiä ongelmia ovat:
- GPS-koordinaattien julkaiseminen vahingossa
- EXIF:n lukeminen jokaisella sivulatauksella
- kaiken EXIF-datan tallentaminen tietokantaan
- puuttuvan EXIF:n käsittelyn unohtaminen
- kuvan optimoinnin vaikutuksen unohtaminen
- oletus, että kaikissa kuvissa on samat EXIF-kentät
EXIF on valinnaista metadataa, joten koodin pitää aina kestää puuttuvat tiedot.
Parhaat käytännöt
WordPress-projektissa EXIF-tietoja kannattaa käsitellä näin:
- määritä ensin, mitä tietoja oikeasti tarvitaan
- lue EXIF upload-vaiheessa
- tallenna vain tarpeelliset kentät
- käsittele puuttuvat kentät turvallisesti
- vältä GPS-tietojen julkaisua ilman tarkoituksellista päätöstä
- huomioi GDPR ja yksityisyys
- optimoi kuvat siten, että tarvittava metadata säilyy
- vältä EXIF:n lukemista jokaisella sivulatauksella
- testaa eri kameroilla ja puhelimilla otetuilla kuvilla
Milloin EXIF:n hyödyntäminen kannattaa?
EXIF on erityisen hyödyllinen:
- valokuvaajien portfolioissa
- kuva-arkistoissa
- uutis- ja mediasivustoilla
- matkailusivustoilla
- luonto- ja harrastesivustoilla
- suurissa mediakirjastoissa
- valokuvauspalveluissa
Tavallisella yrityssivustolla EXIF:n käsittely voi puolestaan olla tarpeetonta.
Yhteenveto
WordPressin yhteydessä EXIF tarjoaa kiinnostavan tavan tehdä kuvien hallinnasta älykkäämpää. Kuvausaikaa, kameratietoja ja muita teknisiä tietoja voidaan hyödyntää automaattisessa luokittelussa, hakutoiminnoissa ja kuva-arkistojen rakentamisessa.
Samalla EXIF on muistutus siitä, että kuvat voivat sisältää paljon käyttäjälle näkymätöntä tietoa. Erityisesti GPS-koordinaatit voivat muodostaa merkittävän yksityisyysriskin.
Paras ratkaisu onkin käsitellä EXIF-tietoja tarkoituksenmukaisesti: lue tarvittavat tiedot kerran, tallenna vain hyödyllinen metadata ja poista tai jätä julkaisematta arkaluonteiset tiedot.