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

tiistai 28. heinäkuuta 2026

Kummallinen bugi Photoshopissa voi palauttaa läpinäkyviä alueita PNG-tiedostoista

Esa Riutta teki Youtube-videon siitä, miten ChatGPT:n sovellusversio pystyy palauttamaan "piilotettua" kuvadataa PNG-tiedostoista. Kokeilin asiaa itsekin. Ilmiö on kummallinen, koska se näyttää liittyvän alkuperäisen tiedoston kokoon.

Otin lähtökohdaksi jpeg-kuvan, jonka tein aikoinaan tekoälyllä. Kuvalla itsellään ei ole tässä merkitystä.

Testin lähtökuva (694x546 pikseliä).

Avataan kuva Photoshopiin, rajataan toinen silmä, käännetään rajaus (select>inverse), poistetaan taustan lukitus ja luodaan uusi säätötaso.

Valitaan File > Export > Export As ja formaatiksi PNG (Transparency rastitettuna).

Export PNG:ksi.

Mielestäni tässä on jo ensimmäinen bugi, sillä Photoshop huomauttaa, ettei tiedostoa voi tallentaa jpeg-muotoon. Ei pitäisikään, koska tallennusmuodoksi on selvästi valittu PNG. Höh.

Kun kuva on näin saatu PNG-muotoon, sen läpinäkyvä silmä erottuu Windowsin tiedostojen esikatselussa valkoisena, mutta esimerkiksi Powerpointiin lisättynä läpinäkyvä aukko erottuu selvästi.

Läpinäkyvyys (alpha-kanava) toimii.

Nyt tulee se kiinnostava kohta. ChatGPT:llä on mahdollista palauttaa läpinäkyvä alue takaisin näkyviin. Niin sen pitäisi ollakin, sillä alpha-kanava tekee vain pikseleistä läpinäkyviä, mutta sen ei mielestäni pitäisi koskea dataan lainkaan.

ChatGPT:n sovellusversio löytää kysyttäessä piilotetun datan ja tarjoaa sen palauttamista.

Läpinäkyvä alue palautettuna.

Tässä ei pitäisi olla mitään ihmeellistä - muuta kuin se, että jos kuvatiedosto on isompi, palautus ei enää onnistukaan. Läpinäkyväksi tarkoitettu data on poistunut pysyvästi.

Isomman kuvan palautus ei onnistukaan.

Kokeilujeni mukaan kyse on nimenomaan lähtökuvan koosta, ei läpinäkyväksi merkityn alueen suuruudesta. 

Kiinnostavaa on, että myös ChatGPT:n web-versio pystyy tekemään palautuksen, mutta se palauttaa vain poistetun alueen (tässä silmän) omana tiedostonaan eikä koske alkuperäiseen PNG-tiedostoon.

ChatGPT:n web-versio toimii eri tavalla.

Jos PNG-tiedostossa on alpha-kanavassa läpinäkyväksi merkitty alue, ja alkuperäinen kuvadata on yhä mukana tiedostossa, sen pitäisi näkyä myös avattaessa PNG-tiedosto Photoshopiin. Se ei kuitenkaan näy, vaan läpinäkyvä alue näkyy "reikänä". Myöskään tasot tai kanavat eivät anna vihjettä siitä, että reikä olisi palautettavissa. Tämä voi jossain tapauksissa tuottaa yllätyksiä.

Nyt on vaikea sanoa, missä tässä on bugi ja mitkä ovat vain ominaisuuksia. Ainakaan toiminnan ei pitäisi riippua kuvatiedoston koosta, kuten se nyt tekee.

Luultavasti kukaan ei yritä piilottaa kriittistä tietoa tekemällä siitä läpinäkyvää ennen kuvan laittamista web-sivulle. Se olisi yhtä hölmöä kuin kriittisen tiedon mustaaminen PDF-dokumentista mustilla palkeilla, jotka ovat helposti poistettavissa (juu, näin on Suomessakin käynyt monta kertaa, jopa viranomaistoiminnassa). Toinen rinnastus liittyy Exceliin, jossa silloin tällöin joku yrittää piilottaa osan tiedoista vetämällä sarkkeen leveyden nollaksi ja suojaamalla laskentamallin. Näitä toimintoja ei ole tarkoitettu tiedon piilottamiseen. 

Koko asetelma on sikäli teoreettinen, että yleensä PNG:tä käytetään kohteen syväämiseen ts. reunoista tehdään läpinäkyviä. Niissä ei yleensä ole mitään arkaluonteista. Valokuvattujen henkilöiden syvääminen PNG:stä on muutenkin hölmön hommaa, sillä häviöttömästi pakattu kuvatiedosto on erittäin suuri. Parempi tapa on käyttää WebP-tiedostomuotoa.

Joka tapauksessa tällaiset yllätykset muistuttavat siitä, miksi tiedostojen julkaisussa kannattaa olla erittäin huolellinen, oli kyse sitten tekstistä tai kuvista. Piilotietoa voi olla missä tahansa. Ja kannattaa opetella käyttämään työvälineitä!

tiistai 19. helmikuuta 2019

Valokuvien pienentäminen kannattaa

Jpeg-valokuvatiedostojen pienentäminen kauhistuttaa monia kuvaajia. Totta on, että jokainen kuvatiedostoon tehty muutos vähentää informaation määrää, joten kuvatiedostot kannattaisi säilyttää alkuperäisinä, vaikka niitä pienennettäisiin kulloiseenkin käyttötarkoitukseen (katselu, tulostus, web-julkaisu ym) sopivaksi.

Mutta jos kuvan informaatio ei alunperinkään ole todellista vaan kohinaa tai jpeg-pakkausartefakteja, alkuperäisen kuvan säilyttämisestä ei ole paljon hyötyä. Suurissa kuvamäärissä ne tuhlaavat tilaa ja hankaloittavat varmuuskopiointia.

Erityisen selvästi tämä näkyy älypuhelimella kuvattaessa. Varsinkin sisätiloissa uudetkin kamerat tuottavat tiedostoja, jotka näyttävät kyllä hyvältä ruudulle pienennettyinä, mutta eivät kestä lähempää tarkastelua. Puhelin piilottaa kohinan pakkauksen alle.

Lisäksi kameran oma pakkaus on todella löysää, jolloin tiedostoihin jää paljon turhaa dataa. Tällaisia tiedostoja on turha säilyttää alkuperäisinä. Jo pelkkä kamerapuhelimen kuvan avaaminen Photoshopissa ja tallentaminen takaisin samaan kokoon pienentää koon yleensä puoleen.

Itse pienennän älypuhelimella arkisissa tilanteissa otetut kuvat 3840x2160, 2560x1440 tai jopa 1920x1080 kokoon riippuen siitä, paljonko niissä on yksityiskohtia ja kohinaa. Samalla kuvatiedoston koko pienenee jopa kymmenesosaan, millä alkaa olla merkitystä kun kuvien määrä kasvaa tuhansiin.

(Toinen tapa, se jota useimmat peruskäyttäjät noudattavat, on olla tallentamatta kuvia mihinkään. Ne häviävät puhelimen vaihdon yhteydessä. Tai sitten kuvat tallennetaan Googlen/Applen pilvipalveluun ja maksetaan kuukausimaksua kuvista, joita ei ikinä tule etsittyä tai katsottua. No, kukin tavallaan).

Mutta miten pienentää joukko kuvia nopeasti? Kuvien avaaminen Photoshopissa yksi kerrallaan on työlästä. Joskus tein makron kuvajoukon käsittelyä varten, mutta sekin on turhan vaivalloista.

Äskettäin löysin näppärän Image Resizer -ohjelman, joka lisää pienennöstoiminnon hiiren kakkospainikkeeseen:

Image Resizer pienentää valitut kuvat helposti.
Pienennystä varten voi määritellä valmiita kokoja ja nimetä ne (keskellä).

Imager Resizer asetukset
Käsitellyn tiedoston nimeen voidaan lisätä nimetty asetus (%2) tai kuvan mitat. Uudet kuvat syntyvät vanhojen kanssa samaan kansioon, joten alkuperäiset pitää poistaa käsin. Toivottavasti seuraavaan versioon saadaan toiminto, joka kirjoittaa pienemmät versiot erilliseen kansioon.

Eräässä kansiossa oli 285 CES-messuilta Samsung S9 -kameralla otettua valokuvaa, jotka alkuperäisinä veivät 723 megatavua (keskiarvo noin 2,5 megatavua per kuva). Pakkaus 80 % jpeg-laadulla 2560x1440-kokoon pudotti tilankulutuksen 117 megatavuun (keskiarvo 0,41 Mt/kuva) eli levytilaa säästyi 605 megatavua. Näytöltä (2560x1440-tarkkuus) kuvissa ei huomaa silmämääräisesti mitään eroa alkuperäisiin.

Messumatkan suurikokoisin kuvatiedosto oli LG:n kaarevista näytöistä. Siinä on valtavasti yksityiskohtia (tähtiä). Alkuperäisen kuvan mitat suoraan puhelimesta olivat 4032x2268 pikseliä ja tiedostokoko 5565 kilotavua.

CES-messujen testikuva, koko alkuperäisenä 5565 kilotavua.
Koska Blogger pienentää ja pakkaa kuvat uudelleen, alkuperäistä on turha laittaa sivulle. Yllä on Photoshopin tekemä 1920x1080-pienennös, joten sitä ei voi käyttää kuvanlaadun analysointiin. Se kertoo vain, millaisesta kuvasta oli kyse.

Pelkkä avaaminen ja tallentaminen uudelleen jpeg-arvolla 8 (laatu: high) puolitti kuvatiedoston koon 2678 kilotavuun. Vastaavasti 3840-koko tuotti 2448 kilotavun, 2560-koko 1353 kilotavun ja 1920-koko 862 kilotavun tiedoston.

Useimmissa kuvissa yksityiskohtia on paljon vähemmän, joten pakkausta toimii tehokkaammin. Image Resizer teki kuvasta 2560-kokoisena (oletuspakkausteho 80) 1188 kilotavua ja 1920-kokoisena 699 kt.

Eikö näin suuri ero näy jo paljain silmin? Yleensä ei, sillä alkuperäisen kuvan informaatio ei ole todellista, ja siksi sen poistaminen ei haittaa.

Alkuperäisen kuvan oikeasta alareunasta otettu leike näyttää, miten paljon artefakteja kameran oma kohinanpoisto on tuottanut:
Alkuperäinen
Suunnilleen sama kohta 2560x1440-versiosta:

2560-versio.
Skaalataan sitten molemmat versiot Photoshopissa täyttämään koko 2560x1440-näyttö (Ctrl+0), otetaan ruutukuva vasemmasta ylänurkasta ja verrataan niitä keskenään.

Alkuperäinen kuva:
Alkuperäinen.
Sama kohta 2560x1440-kuvasta ruudulta kaapattuna:

2560-versio.
Varsinkaan Bloggerin jäljiltä kuvissa on mahdotonta nähdä mitään eroa, vaikka alkuperäisen kuvan informaatiosta on poistettu 75 prosenttia (5565 -> 1353 kt). Photoshopissa huomaa pienen eron tähtien terävyydessä, kun kuvia vaihtelee nopeasti peräkkäin. Pienennetty versio on myös aavistuksen kirkkaampi.

Lopuksi pari varoituksen sanaa. Pienentäminen ja tiivistäminen sopii arkisiin kuviin, joissa ei ole mitään erityistä. Mitä huonompi valaistus, sitä enemmän informaatiota voi poistaa.

Monella on tapana kuvata puhujien Powerpoint-kalvoja. Niitä voi huoletta pienentää ainakin 1920-kokoon asti, usein enemmänkin.

Tasaisten pintojen ja hitaasti muuttuvien värien kohdalla (taivas, auringonlasku) pienennös tai pakkauksen kiristäminen voi tuottaa uusia artefakteja. Ja jos kuvia haluaa säätää tai käsitellä muulla tavoin, se kannattaa tehdä alkuperäisistä tiedostoista. Näkymätönkin informaatio saattaa vaikuttaa käsittelyn jälkeiseen lopputulokseen.

torstai 16. toukokuuta 2013

Photoshop terävöittää tärähtäneet kuvat

On yhä vaikeampi keksiä parannuksia Photoshopiin, mutta nyt Adobella on todellinen ässä hihassaan. Tuleva Photarin versio osaa korjata liian pitkästä suljinajasta ja kameran tärähtämisestä aiheutuneen suttuisuuden. Minuutin kestävä esittely tästä kiinnostavasta toiminnosta löytyy esimerkiksi Youtubesta.

Ainakin demojen perusteella toiminto on silkkaa taikuutta. Pahasti tärähtänyt kuva muuttuu käsittelyssä jälleen teräväksi. Automatiikan ohella käytettävissä on laajat manuaalisäädöt, joilla voi haarukoida kameran tekemää liikettä ja kumota sen vaikutuksen.

Kaiken huipuksi toiminto tukee epälineaarista käsittelyä. Jos kuvattava kohde on ollut vinosti kameraan, sen lähellä olevat kohdat ovat liikkuneet enemmän kuin kaukana olevat kohdat. Analysointia varten kuvasta voidaan valita useita eri kohtia, joiden perusteella Photoshop sitten laskee tarvittavan käänteismuunnoksen kuvan palauttamiseksi. Mitä useampi kohta on merkitty, sitä kauemmin analyysi ja kuvan korjaaminen kestää. Ja laskenta on todella raskasta.

Joitakin vuosia sitten poliisi pidätti Thaimaassa otetun valokuvan perusteella lasten hyväksikäyttäjän. Miehen kasvot oli vääristetty Photoshopin suotimella, mutta poliisi onnistui tekemään vastaavan käänteismuunnoksen ja kasvot tulivat näkyviin.

Sitten ne huonot uutiset. On vielä vähän epäselvää, voiko toimintoa käyttää myös liike-epäterävyyden korjaamiseen. Jos kuva ei ole tärähtänyt, mutta sen keskellä on nopeasti liikkunut ihminen, eläin tai vaikkapa auto, manuaalisäädöillä kohde ehkä saadaan taas teräväksi.

Camera Shake Reduction -toiminto on vain tulevassa Creative Cloud -versiossa, joten se edellyttää pilvimalliin siirtymistä. Kysyessäni asiaa Adoben edustaja sanoi, ettei toimintoa olla ainakaan näillä näkymin tuomassa Lightroomiin. Se on vahinko, sillä Lightroomia käytetään kuvien korjailuun ja Photoshopia enemmänkin taiteellisena tai web-suunnittelijan työkaluna.

Toisaalta pilviohjelman käyttöoikeuden voi ostaa minimissään yhdeksi kuukaudeksi. Sen aikana ehtii korjata kaikki omat tärähtäneet kuvat. Ties mitä loisto-otoksia niistä vielä paljastuu! Jos oikein tulkitsen hinnastoa, kuukauden käyttöoikeus uusimpaan Photoshopiin maksaa vuosisopimuksella 25 euroa kuukaudessa mutta vain yhdeksi kuukaudeksi ostettuna 36,89 euroa.

Niitä, jotka ovat aikoinaan sadatellen poistaneet tärähtäneet kuvansa, tällainen tekniikan kehittyminen saattaa hiukkasen harmittaa. Me included.

Lisäys 22.5.2013: Uutinen Thaimaassa pidätetystä miehestä vuodelta 2007.

lauantai 4. toukokuuta 2013

Takapihan kevät tuli viikon myöhässä

Tänä keväänä pakkasöitä jatkui poikkeuksellisen pitkään, mikä viivytti lumien sulamista. Toisaalta Espoossa ei koettu yhtään kunnollista takatalvea -- vain kerran lumipeite lisääntyi hieman.

Muistikuva pahasti myöhästyneestä keväästä on inhimillinen, mutta väärä. Tunnin välein takapihaa kuvaava kamera kertoo, että viime vuonna viimeinen lumikasa suli pois 21.4. klo 16 jälkeen. Tänä vuonna sama kohta ruohikosta paljastui 25.4. klo 11 ja viimeinen kuvissa näkyvä, toisella puolella pihaa ollut alue hävisi 27.4. klo 15. Yöpakkasista huolimatta lumen sulaminen oli siis vain pari päivää myöhässä viime vuoteen verrattuna.

Jpeg-kuvien tiedostokoosta piirretty graafi näyttää tältä:

Kevät tuli myöhässä, mutta äkillisesti.
Maaliskuun lopun ja huhtikuun 18. päivän välillä lumi ei sulanut juuri lainkaan. Kun yöpakkaset sitten loppuivat, lumi suli lähes silmissä, mikä näkyy maan paljastumisena lumen alta 19.4 ja etenkin 20.4.

Lumipeite on tasaisen valkoista, joten jpeg-tiedosto pakkautuu hyvin; lumen alta paljastuvassa ruohossa on paljon yksityiskohtia mikä näkyy tiedostokoon kasvuna. Suuret vaihtelut 23-30.4. johtuvat pilvisyydestä. Auringonpaiste saa yksityiskohdat erottumaan kuvassa paremmin, mikä vähentää pakkauksen tehoa.

Kuvat eivät ole täysin vertailukelpoisia viime kevään kuviin (linkki yllä), koska kamera on hieman eri asennossa ja koska valotukseen oli asetettu -2/3 EV (muut asetukset ISO 200 ja f/8).

Peräkkäisinä päivinä otetut kuvat samasta kohdasta pihaa:

18.4.2013 klo 16.

19.4.2013 klo 16.

20.4.2013 klo 16.

21.4.2013 klo 16.
Lopuksi vinkki: miten leikata Photoshopilla useasta eri jpeg-tiedostosta saman kokoinen alue samasta kohdasta kuvia? Tämän voi tehdä usealla eri tavalla, mutta helpointa lienee käynnistää Bridge, valita halutut kuvatiedostot, avata ne yhden kuvan eri kerroksina (Tools | Photoshop | Load files into Photoshop Layers), leikata haluttu alue rajaamalla ja lopuksi tallentaa kukin kerros omana tiedostona (File | Scripts | Export layers to files). Tallennuksessa Photoshop kysyy tiedostonimen alun ja lisää sen loppuun alkuperäisen tiedostonimen, joten nimiä ei tarvitse kirjoittaa yksi kerrallaan.

Muitakin tapoja on, mutta tämä lienee helpoin.