PIL on Python Imaging Library, joka tarjoaa python-tulkin kuvanmuokkausominaisuudet. Sen ovat kehittäneet Fredrik Lundh ja useat muut avustajat. Pillow on Alex Clarkin ja muiden avustajien kehittämä ystävällinen PIL-haarukka ja helppokäyttöinen kirjasto. Työskentelemme Pillowin kanssa.
verkkoarkkitehtuuri
Asennus:
- Linux: Kirjoita linux-päätelaitteessa seuraava:
pip install PillowPipin asennus terminaalin kautta:sudo apt-get update
sudo apt-get install python-pip - Windows: Lataa sopiva tyynypaketti python-versiosi mukaan. Varmista, että lataat python-versiosi mukaan.
Työskentelemme tässä Image Module -moduulin kanssa, joka tarjoaa samannimisen luokan ja tarjoaa paljon toimintoja kuviemme käsittelyyn. Kuvamoduulin tuomiseksi koodimme tulee alkaa seuraavalla rivillä:
from PIL import ImageToiminnot kuvien kanssa:
- Avaa tietty kuva polusta: Python
#img = Image.open(path) # On successful execution of this statement # an object of Image type is returned and stored in img variable) try: img = Image.open(path) except IOError: pass # Use the above statement within try block as it can # raise an IOError if file cannot be found # or image cannot be opened.
- Hae kuvan koko : Luoduilla Image-luokan esiintymillä on monia attribuutteja, yksi sen hyödyllisistä määritteistä on koko. Python
Joitakin muita määritteitä ovat: Image.width Image.height Image.format Image.info jne.from PIL import Image filename = 'image.webp' with Image.open(filename) as image: width height = image.size #Image.size gives a 2-tuple and the width height can be obtained
- Tallenna muutokset kuvaan: Tallentaaksemme kaikki kuvatiedostoon tekemäsi muutokset meidän on annettava polku ja kuvamuoto. Python
img.save(path format) # format is optional if no format is specified #it is determined from the filename extension
- Kuvan kääntäminen: Kuvan kierto vaatii kulman parametrina kuvan kääntämiseksi. Python
from PIL import Image def main(): try: #Relative Path img = Image.open('picture.webp') #Angle given img = img.rotate(180) #Saved in the same relative location img.save('rotated_picture.webp') except IOError: pass if __name__ == '__main__': main()
Huomautus: Käytettävissä on valinnainen laajennuslippu, joka on yksi kiertomenetelmän argumenteista, joka, jos se on asetettu tosi, laajentaa tulosteen kuvan niin, että se pitää sisällään koko käännetyn kuvan. Kuten yllä olevasta koodinpätkästä näkyy, olen käyttänyt suhteellista polkua, jossa kuvani sijaitsee samassa hakemistossa python-kooditiedostoni kanssa, myös absoluuttista polkua voidaan käyttää.
- Kuvan rajaaminen: Image.crop(box) ottaa 4-kertaisen (vasen ylempi oikea alempi) pikselikoordinaatin ja palauttaa käytetystä kuvasta suorakaiteen muotoisen alueen. Python
from PIL import Image def main(): try: #Relative Path img = Image.open('picture.webp') width height = img.size area = (0 0 width/2 height/2) img = img.crop(area) #Saved in the same relative location img.save('cropped_picture.webp') except IOError: pass if __name__ == '__main__': main()
- Kuvan koon muuttaminen: Image.resize(size) - Tässä koko on 2-osan leveys ja korkeus. Python
from PIL import Image def main(): try: #Relative Path img = Image.open('picture.webp') width height = img.size img = img.resize((width/2 height/2)) #Saved in the same relative location img.save('resized_picture.webp') except IOError: pass if __name__ == '__main__': main()
- Kuvan liittäminen toiseen kuvaan: Toinen argumentti voi olla 2-tuple (määrittää vasemman yläkulman) tai 4-tuple (vasen yläoikea alempi) - tässä tapauksessa liitetyn kuvan koon on vastattava tämän laatikkoalueen kokoa tai Ei mitään, mikä vastaa (0 0). Python
from PIL import Image def main(): try: #Relative Path #Image on which we want to paste img = Image.open('picture.webp') #Relative Path #Image which we want to paste img2 = Image.open('picture2.webp') img.paste(img2 (50 50)) #Saved in the same relative location img.save('pasted_picture.webp') except IOError: pass if __name__ == '__main__': main() ##An additional argument for an optional image mask image is also available.
- Kuvan histogrammin hankkiminen: Tämä palauttaa kuvan histogrammin, koska pikseliluettelo laskee yhden kutakin kuvan pikseliä kohden. (Kuvan histogrammi on graafinen esitys digitaalisen kuvan sävyjakaumasta. Se sisältää kaikki kuvan sisältämät kirkkausarvot. Se piirtää kunkin kirkkausarvon pikselien lukumäärän. Se auttaa valotusasetusten tekemisessä.) kohdasta PIL import Image Python
def main(): try: #Relative Path img = Image.open('picture.webp') #Getting histogram of image print img.histogram() except IOError: pass if __name__ == '__main__': main()
- Kuvan siirtäminen: Tämä ominaisuus antaa meille kuvan peilikuvan Python
from PIL import Image def main(): try: #Relative Path img = Image.open('picture.webp') #transposing image transposed_img = img.transpose(Image.FLIP_LEFT_RIGHT) #Save transposed image transposed_img.save('transposed.webp') except IOError: pass if __name__ == '__main__': main()
- Jaa kuva yksittäisiin bändeihin: Kuvan jakaminen RGB-tilassa luo kolme uutta kuvaa, joista jokainen sisältää kopion alkuperäisistä yksittäisistä kaistaista. Python
from PIL import Image def main(): try: #Relative Path img = Image.open('picture.webp') #splitting the image print img.split() except IOError: pass if __name__ == '__main__': main()
- bittikartta: Kuvan muuntaminen X11-bittikartaksi (plain text binary image format). Se palauttaa merkkijonon, joka sisältää X11-bittikartan, ja sitä voidaan käyttää vain tilan 1 kuville eli 1 bitin pikselin mustavalkoisille kuville. PIL-tuontikuvasta Python
def main(): try: #Relative Path img = Image.open('picture.webp') print img.mode #converting image to bitmap print img.tobitmap() print type(img.tobitmap()) except IOError: pass if __name__ == '__main__': main()
- Pikkukuvan luominen: Tämä menetelmä luo pikkukuvan avattavasta kuvasta. Se ei palauta uutta kuvaobjektia, vaan tekee paikan päällä olevan muokkauksen itse avautuvaan kuvaobjektiin. Jos et halua muuttaa alkuperäistä kuvaobjektia, luo kopio ja käytä sitten tätä menetelmää. Tämä menetelmä arvioi myös sopivan säilyttää kuvan kuvasuhteen siirretyn koon mukaan. PIL-tuontikuvasta Python
def main(): try: #Relative Path img = Image.open('picture.webp') #In-place modification img.thumbnail((200 200)) img.save('thumb.webp') except IOError: pass if __name__ == '__main__': main()