Näytetään tekstit, joissa on tunniste kuvankäsittely. Näytä kaikki tekstit
Näytetään tekstit, joissa on tunniste kuvankäsittely. Näytä kaikki tekstit

sunnuntai 20. toukokuuta 2012

iPhonen kuvanrajaus yllättää

iPhonea kehutaan niin helppokäyttöiseksi, ettei ohjekirjaa tarvitse lukea (eikä sitä puhelimen mukana tulekaan). Ehkä pitäisi? Esimerkiksi valokuvan rajaaminen voi tarjota yllätyksen.

Otetaan iPhonella valokuva ja rajataan siitä ylimääräiset pois rajaustyökalulla:



Painetaan sen jälkeen Rajaa ja Tallenna, jolloin iPhone tallentaa kuvasta tiukemmin rajatun version:


Kun tulosta katsotaan iPhonen näytöllä, kuvassa näkyy vain koira.

Jos kuva lähetetään Facebookiin, ohjelma näyttää valitun kuvan ja pyytää nimeämään siinä esiintyvät henkilöt, sen jälkeen se lähetetään palveluun:



Kuva näkyy Facebookin ikkunassa neliömäisenä (kuten kaikki, myös alkuperäiset 3:2-suhteella olevat kuvat):


Mutta sitten tulee yllätys: Facebookissa kuva näkyykin alkuperäisenä, rajaamattomana versiona:


Mitä ihmettä? Koiraesimerkki on harmiton, mutta...  kuvitellaan että olet ottanut valokuvan ja rajannut siitä pois ympäristöä tai vääriä henkilöitä. Kaikki näyttää olevan kunnossa, mutta kun kuva ilmestyy Facebookiin huomaat, että poistetut alueet ovatkin palanneet takaisin -- ja mitään kerran nettiin päätynyttä ei saa varmuudella poistettua.

Itse asiassa törmäsin ilmiöön ensi kerran juuri tällaisessa tapauksessa. Vaikka itse olisi miten tarkkana, ohjelmat ja palvelut muuttuvat itsekseen ja varoittamatta.

Yritin googlata ilmiölle selitystä, mutta sitä ei löytynyt joten aloin penkoa asiaa itse. Miksi iPhonessa tehty kuvan rajaus ei olekaan todellista?

iPhone näyttää tallentavan rajatun kuvan, mutta todellisuudessa kuva säilyy alkuperäisenä -- jatkossa se vain näytetään rajattuna. Mistään ei käy ilmi, että kuvassa on muutakin. Tämä on mielestäni paha käytettävyyspuute. Asia paljastuu vain, jos kuvaa editoidaan uudelleen iPhonessa. Silloin rajausalue ilmestyy uudelleen näkyviin ja kuvaa voi rajata vaikka isommaksi. Ominaisuus on tuore, sillä se tuli vasta iOS 5:n mukana.

Rajaus muuttuu todelliseksi, jos kuva lähetetään iPhonesta kamerasovelluksen omilla toiminnoilla esimerkiksi lisäämällä se sähköpostiin tai tviittaamalla eteenpäin. Mutta jos kuva luetaan tiedostona toiseen ohjelmaan, tulos voi olla kumpi tahansa. Instagram ottaa rajatun version käsittelyynsä sellaisenaan, EyeEm alkuperäisen version.

Virtuaalinen rajaus on kuvankäsittelyohjelmista tuttu toiminto, mutta tässä yhteydessä se yllättää. Etenkin kun Androidissa vastaavassa toiminto on todellinen. Mielenkiintoista kyllä, edes Applen oma PhotoStream ei näytä rajausta vaan alkuperäisen kokonaisen kuvan.

Jos iPhonella rajatun kuvan siirtää Adoben Lightroomiin, se näyttää rajauksen ja myös tiedon siitä, että kuvaa on rajattu:


Ja nyt ollaankin jo jäljillä! Kuvan rajaaminen iPhonessa lisää siihen Adoben xmp-määrityksen mukaisen metadatan. Has Crop = True kertoo rajauksesta, jonka koordinaatit selviävät desimaaliluvuista Crop Top, Crop Bottom, Crop Left ja Crop Right. Rajatun version mitat ovat kentissä Crop W ja Crop H. Photoshopin tuoreet versiot avaavat xmp-rajatut jpeg-kuvat Camera raw -lisäosaan, vaikka kuvat eivät raakakuvia olekaan.

Kaipasin vastaavaa tekniikkaa jo kymmenen vuotta sitten. Pohdin, miksei digikuvaan voisi lisätä tietoa siitä, mikä kohta kuvasta halutaan rajata näkyviin. Nimitin sen softcrop-asetukseksi. Nyt se on näköjään toteutettu.

Valitettavasti kaikki ohjelmat eivät lue xmp-metadatan rajaustietoja. Mielenkiintoista nähdä, lisätäänkö tuki Androidiin ja Windows Phoneen sekä muihin kuvankäsittely- ja katseluohjelmiin.

Sitä odotellessa on luvassa monia noloja tilanteita varsinkin sosiaalisessa mediassa! Mokailu kuuluu someen.

lauantai 7. huhtikuuta 2012

Photoshop tuhoaa osan kuvan metadatasta

Vielä yksi kummallinen Photoshop-asia.

Lopetin Photoshopin käytön kuvien pienentämiseen muutama vuosi sitten huomattuani, että ohjelma tuhoaa osan kuvan metadatasta. Kokeilujeni perusteella kyse näyttäisi olevan jpeg-kuvatiedoston ns. makernote-alueesta, joka on valmistajakohtainen ja siten epästandardi. Jokainen kameravalmistaja tallentaa alueelle juuri omaan laitteeseensa liittyviä teknisiä tietoja.

Esimerkiksi Panasonic DMC-G2 tallentaa alueelle kuvassa esiintyvän henkilön nimen (jos kamera on tunnistanut hänet) sekä lapsen iän, jos kameraan on tallennettu lapsen syntymäaika. Nämä tiedot eivät ole minkään standardin mukaisia, joten muut kuin valmistajan omat ohjelmat eivät välttämättä osaa tulkita niitä. Tiedot on tarkoitettu vain luettaviksi; niiden kirjoittaminen takaisin sotkisi alueen.

Jos ohjelma ei osaa tulkita makernote-aluetta, sen pitäisi jättää alue rauhaan. Jostain syystä Photoshop kuitenkin tuhoaa tiedot heti, kun kuva tallennetaan Photoshopissa ensimmäisen kerran (vaikka itse kuvaa ei olisi millään tavalla muokattu).

Demonstroin asiaa kuvalla, jonka otin 12.7.2010 Garda-järvellä Canon 7D-kameralla ja E71-puhelimen Bluetoothin kautta antamilla sijaintitiedoilla. Lähtökohtana on suoraan kamerasta saatu jpeg-kuva (tässä 800 vaakapikseliin pienennetty versio laiva800.jpg):

Tässä sama kuva Photoshop CS5:llä tallennettuna:

Kuvat näyttävät samoilta, mutta CS5:n tallentamasta versiosta puuttuu kamerakohtainen metadata (voit ladata molemmat kuvat ja verrata niiden metadata-alueita). Osa alueen tiedoista kirjoitetaan xmp-muodossa toiselle nimelle, mutta esimerkiksi tarkennuksen hienosäätöarvo (esimerkkikuvassa +15), kuvatyyli sekä kaikki automaattitarkennuksen asetuksiin liittyvät tiedot häviävät.

Kokeilin asiaa eri ohjelmilla. Windows 7:n oma, äärimmäisen yksinkertainen MS Paint, vanha (v. 2007) mutta nopea Thumbs Plus 7 sekä XnView kaikki säilyttivät kamerakohtaisen metadatan. Photoshop CS2, CS5, Gimp 2.6.12 ja Corelin PaintShop Pro X4 poistivat sen.

Metadataa voi tutkia analyysiohjelmilla, jotka osaavat tulkita yleisten kameramallien makernote-tiedot. Havainnollisuuden vuoksi esitän kokeilujen tulokset vain Digital Photo Professional -ohjelman (Canonin kameroiden mukana tuleva vakiosofta) näyttöinä (info-ikkuna, joka saadaan painamalla Ctrl+I):


DPP näyttää vain osan makernote-tiedoista, mutta GIMPin ja Photarin ero muihin käy selvästi ilmi.

Yksi mielenkiintoinen makernote-alueen tieto on kameran käyttämä tarkennuspiste. Siitä on hyötyä kun jälkikäteen halutaan selvittää, miksi jokin kuva ei ole tarkentunut oikein. DPP-ohjelmassa tarkennuspisteet nähdään painamalla Alt+L. Kameran valitsema tarkennuspiste näkyy punaisena:


Jos kuva on käynyt Photoshopissa tai Gimpissä, mm. tämä tieto on lopullisesti menetetty. Kuulostaa hölmöltä, kun kyse on ammattikäyttöön tarkoitetusta ohjelmasta.

Vaikka esimerkkini on Canonista, muiden valmistajien kamerat käyttäytyvät samoin. Ongelma koskee siis yhtä hyvin Nikon, Panasonic, Olympus ym. -kuvaajia.

Ja kyllä: Lightroom käyttäytyy samalla tavalla joten kyse ei ole bugista vaan tietoisesta valinnasta.

Vielä yksi vertailu. Gimp-ohjelman valintaikkuna, josta valitaan jpeg-kuvan tekniset parametrit (alinäytteistys-lista avattu havainnollisuuden vuoksi):

Corelin PaintShop Pro X4:n jpeg-tallennus antaa seuraavat vaihtoehdot:

Ja viimeisenä Photoshop CS5:n tallennusvalinnat:

Mikä näistä näyttää eniten ammattilaisen ohjelmalta?

(muokattu 8.4.2012 15.10 lisäämällä PaintShop Pro:n tiedot)