يحدث أن تذهب إلى مكتب البريد وترى مجموعة أخرى من المقالات التي لم تقرأها من قبل ، ولكن هنا تقاربت النجوم كثيرًا لدرجة أنني فتحت المقالة وقرأتها ، واكتشفت أين سيكون مفيدًا في الممارسة. والآن أريد مشاركة مقال مع Habr ، لذلك إذا احتاج شخص ما إلى دليل بسيط ومفهوم للعمل مع الصور في Python ، من فضلك.
وسادة هي مكتبة تصوير مجانية مفتوحة المصدر ( يشار إليها فيما يلي بمكتبة التصوير ) في لغة بايثون تضيف دعمًا لفتح الصور وتعديلها وحفظها بامتدادات مختلفة إلى الكود الخاص بك.
لنبدأ
الفئة الأكثر أهمية في Imaging Library Python هي فئة Image ، المحددة في الوحدة النمطية التي تحمل الاسم نفسه. نستخدم open () لفتح صورة في دليلنا المحلي كما هو موضح أدناه:
from PIL import Image
sample = Image.open('pena.jpg')
انه سهل! يمكنك الآن قراءة الصور باستخدام وسادة ، مما يعني أنه يمكنك البدء في معالجة الصورة باستخدامها. يمكنك أيضًا التحقق من نوع الصورة التي قمنا بتحميلها للتو.
type(sample) PIL.JpegImagePlugin.JpegImageFile
يمكنك إلقاء نظرة على خصائص الصورة ، على سبيل المثال:
- شكل
- الحجم
- وضع اللون
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()

: