На этом шаге мы рассмотрим оставшиеся методы.
Перечислим оставшиеся методы, придназначенные для работы с изображениями:
>>> img = Image.open("Sample1.jpg") >>> img2 = img.crop( (0, 0, 100, 100) ) # Помечаем фрагмент >>> img2.load() # Считываем фрагмент, создавая новое изображение <PixelAccess object at 0x00AC0680> >>> img2.size (100, 100)
>>> img = Image.open("Sample1.jpg")
>>> img.paste( (255, 0, 0), (0, 0, 100, 100) )
>>> img.show()
Результат
Теперь зальем все изображение зеленым цветом:
>>> img = Image.open("Sample1.jpg")
>>> img.paste( (0, 128, 0), img.getbbox() )
>>> img.show()
Результат
В этом примере мы использовали метод getbbox(), который возвращает координаты прямоугольной области, в которую вписывается все изображение:
>>> img.getbbox()
(0, 0, 320, 240)
>>> img = Image.open("Sample1.jpg") >>> imag2 = img.resize ( (200, 150) ) # Создаем миниатюру >>> imag2.size (200, 150) >>> img.paste ( (255, 0, 0), (9, 9, 211, 161) ) # Рамка >>> img.paste (imag2, (10, 10) ) # Вставляем миниатюру >>> img.show()
Результат
Необязательный параметр <Маска> позволяет задать степень прозрачности вставляемого изображения или цвета. Для примера выведем белую полупрозрачную горизонтальную полосу высотой 100 пикселей:
>>> img = Image.open("Sample1.jpg") >>> white = Image.new ("RGB", (img.size[0], 100), (255,255,255)) >>> mask = Image.new("L", (img.size[0], 100), 64) # Маска >>> img.paste (white, (0, 0), mask) >>> img.show()
Результат
>>> img = Image.open("Sample1.jpg") >>> img.mode 'RGB' >>> R, G, B = img.split() >>> mask = Image.new ("L", img.size, 128) >>> img2 = Image.merge ("RGBA", (R, G, B, mask) ) >>> img2.mode 'RGBA' >>> img2.show()
Результат
>>> img = Image.open("Sample1.jpg") >>> img.mode 'RGB' >>> img2 = img.convert("RGBA") >>> img2.mode 'RGBA' >>> img2.show()
Результат
Преобразуем изображение RGB в формат P, указав смешивание цветов и адаптивную палитру в 128 цветов:
>>> img = Image.open("Sample1.jpg") >>> img.mode 'RGB' >>> img2 = img.convert("P", None, Image.FLOYDSTEINBERG, Image.ADAPTIVE, 128) >>> img2.mode 'P'
>>> from PIL import ImageFilter >>> img = Image.open("Sample1.jpg") >>> img2 = img.filter (ImageFilter.EMBOSS) >>> img2.show()
Результат
На следующем шаге мы рассмотрим рисование линий и фигур.