8 พฤศจิกายน 2557

Published 11/08/2557 by with 0 comment

จัดการและประมวลผลรูปภาพกราฟิกใน Python ด้วย Pillow


  สวัสดีผู้อ่านทุกท่านครับ บทความนี้ผมจะพาผู้อ่านไปรู้จักกับโมดูล Pillow ซึ่งเป็นด้าน image processing and graphics capabilities หรือโมดูลจัดการและประมวลผลรูปภาพบน Python
  ใน Python มีโมดูลด้านนี้ที่ชื่อว่า Python Imaging Library (PIL) ซึ่งรองรับแต่ Python 2 ในเวลานี้ครับ จึงมีคนได้ Fork PIL มาพัฒนาเป็นโมดูล Pillow ครับ รองรับทั้ง Python 2 และ Python 3 เหตุผลที่ Fork ทางนักพัฒนาได้บอกว่า PIL ไม่สนับสนุน setuptools และมีกำหนดการออกเวชั่นใหม่สองปีหรือมากกว่านั้น
โมดูล Pillow ทำอะไรได้บ้าง
  • จัดเก็บรูปภาพ (Image Archives)
  • แสดงรูปภาพ (Image Display)
  • ประมวลผลรูปภาพ (Image Processing) เช่น ปรับขนาดรูปภาพ แปลงไฟล์รูปภาพ ใส่ตัวอักษรลงในภาพ และอื่น ๆ เป็นต้น
การติดตั้ง
ใช้ pip ติดตั้งโดยใช้คำสั่ง
pip install Pillow
สำหรับบน Windows โหลดไฟล์ติดตั้งได้ที่ PyPI

ลองจัดการและประมวลผลรูปภาพกราฟิกใน Python ด้วย Pillow

>>> from PIL import Image
>>> im = Image.open("60_1.jpg")
>>> print(im.format, im.size, im.mode)
JPEG (450, 346) RGB
>>> im.show()

ผลลัพธ์
เมื่อใช้คำสั่ง print(im.format, im.size, im.mode) โปรแกรมจะส่งค่าของรูปภาพนั้นออกมา เมื่อใช้คำสั่ง im.show() โปรแกรมจะเปิดรูปภาพมาแสดง
ลองมาปรับขนาดรูปภาพใน Python ด้วย Pillow กัน
>>> out = im.resize((128, 128))
>>> out.show()

ผลลัพธ์
ด้านขวามือคือคำสั่ง im.show() ด้านซ้ายมือคือคำสั่ง out.show() จะเห็นได้ว่าภาพถูกปรับขนาดเป็นที่เรียบร้อยแล้วครับ
ใส่ข้อความลงในรูปภาพบน Python ด้วย Pillow
ไฟล์ 60_1.jpg
โค้ดตัวอย่าง:
from PIL import Image
from PIL import ImageFont
from PIL import ImageDraw
img = Image.open("60_1.jpg") #ดึงรูปภาพเข้ามา
draw = ImageDraw.Draw(img)
#ดึงไฟล์ Font เข้ามาและกำหนดขนาด
font = ImageFont.truetype("CSPraKasFD.otf", 50)
#ใส่ข้อความ โดยมีรูปแบบการใช้งานดังนี้ draw.text((x, y),"Sample Text",(r,g,b))
draw.text((10, 10), "Hello!",font=font)
#บันทึกรูปภาพเป็น sample-out.jpg
img.save('sample-out.jpg')
ผลลัพธ์
ไฟล์  sample-out.jpg
ขอขอบคุณฟอนต์: CS PraKas (ประกาศ) จาก f0nt.com

  นอกจากเรื่องประมวลผลรูปภาพกราฟิกใน Python เราสามารถนำ Pillow มาสร้างงานศิลปะจิตอลวน (Psychedelic Art) แบบสุ่มใน Python ได้อีกด้วยครับ อ่านได้ที่ http://jeremykun.com/2012/01/01/random-psychedelic-art/ ลองเล่นโค้ดได้ที่ https://github.com/j2kun/random-art/blob/master/randomart.py ครับ

หน้าเว็บโครงการ Pillow http://python-pillow.github.io/
เอกสารการใช้งาน Pillow http://pillow.readthedocs.org/
ติดตามบทความต่อไปนะครับ
ขอบคุณครับ

0 ความคิดเห็น:

แสดงความคิดเห็น

แสดงความคิดเห็นได้ครับ :)