Sucede que vas a la oficina de correos y ves otra colección de artículos que nunca leíste, pero aquí las estrellas convergieron tanto que abrí el artículo y lo leí, y descubrí dónde sería útil en la práctica. Y ahora quiero compartir un artículo con Habr, para que si alguien necesita una guía simple y comprensible para trabajar con imágenes en Python, por favor.
Pillow es una biblioteca de imágenes de código abierto gratuita (en adelante Biblioteca de imágenes ) en Python que agrega soporte para abrir, modificar y guardar imágenes en varias extensiones de su código.
Empecemos
La clase más importante en la biblioteca de imágenes Python es la clase Image, definida en el módulo del mismo nombre. Usamos open () para abrir una imagen en nuestro directorio local como se muestra a continuación:
from PIL import Image
sample = Image.open('pena.jpg')
¡Es simple! Ahora puede leer imágenes usando Pillow , lo que significa que puede comenzar a procesar la imagen usándolo. También puedes comprobar el tipo de imagen que acabamos de subir.
type(sample) PIL.JpegImagePlugin.JpegImageFile
Puede mirar las propiedades de la imagen, por ejemplo:
- formato
- el tamaño
- Modo de color
sample.format
'JPEG'
sample.size
(640, 640)
sample.mode
'RGB'
, , show
sample.show() # , PNG
Pillow , , , jpg png .
, Python , jpg, png.
import os
import sys
from PIL import Image
jpg_images = [image for image in os.listdir() if image.endswith('.jpg')]
for jpg_image in jpg_images:
try:
new_name = jpg_image.split('.')[0] + '.png'
Image.open(jpg_image).save(new_name)
except IOError as error:
print('Couldn\'t read {} '.format(jpg_image))
, , , jpg, .png, . .
Pillow , , , .
from PIL import Image
picture = Image.open('pena.png')
cord = (10, 10, 640, 340) # , , ,
new_picture = picture.crop(cord)
new_picture.show()
, . .
(x, y) , (x2, y2) .
Pillow , .
.
from PIL import Image
image = Image.open('pena.png')
resized_image = image.resize((320, 320))
resized_image.save('resized.png')
, 320 320.
from PIL import Image
image = Image.open('pena.png')
rotated_img = image.rotate(80)
rotated_img.save('./rotation/rotated_img.png')
360 — , .
from PIL import Image
images = ['pena.jpg']
for img in images:
try:
org_img = Image.open(img)
for angle in range(1, 361):
image_name = str(angle)+'.jpg'
new_img = org_img.rotate(angle)
new_img.save('./rotation/'+image_name)
except IOError:
print('Couldn\'t read {}'.format(img))
, 360 , .
— . , , .
, , ,- , , .
Pillow , BLUR, BoxBlur, CONTOUR, FIND_EDGES, Filter, GaussianBlur, Kernel, MaxFilter, MedianFilter, SHARPEN, SMOOTH ..
, FIND_EDGES.
from PIL import Image
from PIL import Image, ImageFilter
image = Image.open('pena.jpg')
edges = image.filter(ImageFilter.FIND_EDGES)
edges.show()
Python Pillow , .
, Pillow Python,
from PIL import Image
image = Image.open(open('pena.jpg', 'rb'))
URL
Pillow . GET-request , , Pillow .
import requests
from PIL import Image
url = 'http://pena.marketing/images/Logo1.png'
raw = requests.get(url, stream=True).raw
Image.open(raw).show()
Pillow , . Image.new() .
:
new = Image.new(mode, shape, color)
:
from PIL import Image
new_img = Image.new('RGB', (500, 500), 'blue')
new_img.show()
Pillow . . , .
.
from PIL import Image, ImageDraw
new_img = Image.new('RGB', (400, 400), 'black')
pencil = ImageDraw.Draw(new_img)
pencil.rectangle((200, 50, 300, 300), fill ='green')
new_img.show()
(x, y) , (x2, y2) .
Pillow .
from PIL import Image , ImageDraw, ImageFont
new_img = Image.new('RGB', (200, 200), 'black')
font = ImageFont.load_default()
pencil = ImageDraw.Draw(new_img)
pencil.text((100,100),'Hello World', font=font, fill='blue', size = 36)
new_img.show()
: