Andrise programmeerimisalane WIKI
Piltide redigeerimine
Pildifaile on võimalik redigeerida suhteliselt piiratud ulatuses. Saab muuta faili tüüpi, suurust, pilti lõigata ja pöörata. Samuti saab kasutada automaagilist funktsiooni värvide sättimiseks, kuid käsitsi värve ega muud sättida ei saa. Piltide redigeerimiseks tuleb sisse laadida images teek.
from google.appengine.api import images
Pildifaile saab hoida nagu muidki andmeid andmebaasis, seega tuleb arvestada, et fail ei tohi ületada 1 MB suurust. Sellest piirangust on võimalik mööda saada BlobStore failihoidlat kasutades, kuid käesolevas õpetuses BlobStore'st juttu ei tule, kuna tegu on ainult tasulises paketis oleva lisaga. BlobStore dokumentatsiooni leiab Google App Engile lehelt.
Pildi laadimine
Pildi redigeerimiseks, tuleb see avada Image klassiga, mis loob redigeeritava pildiobjekti. Parameetriks on pildifaili sisu - see võib tulla näiteks üleslaadimise parameetrina või andmebaasist.
pilt = images.Image(pildifail)
Pildiobjektiga saab läbi viia juba mitmeid erinevaid tegevusi.
Suuruse muutmine
Suuruse muutmine käib pildiobjekti meetodiga resize, mis võtab parameetriteks nõutud laiuse ja kõrguse. Juhul kui faili mõõtmed ei ole võrdselt teisendatavad, siis pilti ei venitata välja, vaid viiakse suurem külg õige mõõduni, lühem külg aga muutub võrdeliselt pikema külje muutusega.
pilt.resize(width = 100, height = 100)
Pööramine
Pildi pööramiseks on käsklus rotate, mis võtab parameetriks pöördenurga. Pilti saab pöörata siiski vaid 90 kraadi kaupa.
pilt.rotate(degrees = 270)
Ümberpööramine
Pilti saab ümber pöörata nii horisontaal kui vertikaalsuunal, pakkudes selleks vastavalt meetodeid horizontal_flip ja vertical_flip.
pilt.vertical_flip()
Lõikamine
Pildist mingi kindla osa lõikamiseks on meetod crop. Erinevalt näiteks PHP sarnasest käsust imagecopyresampled, ei ole lõikekohta määravad parameetrid mitte pikslit absoluutnumbrites, vaid protsentuaalsed väärtusega 0 kuni 1 pildi külje pikkusest. Näiteks kui pildi pikkus on 100 pikslit ning on soov lõigata alates 23. pikslist, siis tuleb lõikekoha alguseks panna väärtus 0.23.
Parameetriteks on siis lõikekasti suhtelised koordinaadid left_x, top_y, right_x ja bottom_y, millest igaühe väärtus jääb 0 ja 1 vahele.
Värvuste sättimine
Värvide ja kontrasti info korrigeerimiseks on võimalik kasutada automaagilist meetodit im_feeling_lucky.
pilt.im_feeling_lucky()
Pildi väljastamine
Pildi väljastamiseks tuleb esiteks muuta pildiobjekt tagasi faili kujule, mida oleks võimalik brauserile saata ning teiseks tuleb seada vastav päis, mis annab teada mis tüüpi pildiga tegu on.
pildifail = pilt.execute_transforms(output_encoding=images.JPEG) self.response.headers['Content-Type'] = 'image/jpeg' self.response.out.write(pildifail)
Käidud rada: • tookeskkond • pubsubhubbub • viited • cron • koos • mail • tasks • lisa1 • domeen • images