Python Pillow - Korzystanie z modułu obrazu
Aby wyświetlić obraz, biblioteka poduszek używa klasy obrazu. Moduł obrazu w pakiecie poduszek zawiera kilka ważnych wbudowanych funkcji, takich jak ładowanie obrazów lub tworzenie nowych obrazów itp.
Otwieranie, obracanie i wyświetlanie obrazu
Aby załadować obraz, po prostu importujemy moduł obrazu z poduszki i wywołujemy plik Image.open()przekazując nazwę pliku obrazu.
Zamiast wywoływać moduł Pillow, będziemy wywoływać moduł PIL, aby był wstecznie kompatybilny ze starszym modułem o nazwie Python Imaging Library (PIL). Dlatego nasz kod zaczyna się od“from PIL import Image” zamiast “from Pillow import Image”.
Następnie załadujemy obraz, wywołując plik Image.open() function, która zwraca wartość typu danych obiektu Image. Wszelkie modyfikacje obiektu obrazu można zapisać w pliku obrazu z rozszerzeniemsave()metoda. Obiekt obrazu, który otrzymaliśmy za pomocąImage.open(), później może być używany do zmiany rozmiaru, przycinania, rysowania lub innych wywołań metod manipulacji obrazem w tym obiekcie Image.
Przykład
Poniższy przykład demonstruje obrót obrazu za pomocą poduszki Pythona -
from PIL import Image
#Open image using Image module
im = Image.open("images/cuba.jpg")
#Show actual Image
im.show()
#Show rotated Image
im = im.rotate(45)
im.show()
Wynik
Jeśli zapiszesz powyższy program jako Example.py i uruchomisz, wyświetli on oryginalne i obrócone obrazy za pomocą standardowego narzędzia do wyświetlania PNG, w następujący sposób -
Actual image
Rotated image (45 degrees)
Atrybuty modułu obrazu
Instancja klasy Image ma pewne atrybuty. Spróbujmy zrozumieć kilka z nich na przykładzie -
Nazwa.pliku
Ta funkcja jest używana do uzyskania nazwy pliku lub ścieżki do obrazu.
>>>image = Image.open('beach1.jpg')
>>> image.filename
'beach1.jpg'
Format obrazu
Ta funkcja zwraca format pliku obrazu, taki jak „JPEG”, „BMP”, „PNG” itp.
>>> image = Image.open('beach1.jpg')
>>>
>>> image.format
'JPEG'
Image.mode
Służy do uzyskania formatu pikseli używanego przez obraz. Typowe wartości to „1”, „L”, „RGB” lub „CMYK”.
>>> image.mode
'RGB'
Rozmiar obrazu
Zwraca krotkę składającą się z wysokości i wagi obrazu.
>>> image.size
(1280, 721)
Szerokość obrazu
Zwraca tylko szerokość obrazu.
>>> image.width
1280
Wysokość obrazu
Zwraca tylko wysokość obrazu.
>>> image.height
721
Image.info
Zwraca słownik zawierający dane powiązane z obrazem.
>>> image.info
{'jfif': 257, 'jfif_version': (1, 1), 'dpi': (300, 300), 'jfif_unit': 1, 'jfif_density': (300, 300), 'exif': b"Exif\x00\x00MM\x00*\x00\x00\x00
....
....
\xeb\x00\x00'\x10\x00\x00\xd7\xb3\x00\x00\x03\xe8"}
Image.palette
Zwraca tabelę palety kolorów, jeśli taka istnieje.
>>> image.palette
Output above - Żaden