หนึ่งในไลบรารี่เริ่มต้นที่ได้รับความนิยมมากที่สุดและถือเป็นไลบรารีเริ่มต้นของ python สำหรับการประมวลผลภาพคือ Pillow Pillow เป็นเวอร์ชันปรับปรุงของ Python Image Library หรือ PIL และรองรับฟังก์ชันการจัดการรูปภาพที่เรียบง่ายและขั้นสูงมากมาย นอกจากนี้ยังเป็นพื้นฐานสำหรับการรองรับรูปภาพอย่างง่ายในไลบรารี Python อื่นๆ เช่น sciPy และ Matplotlib
การติดตั้งหมอน
ก่อนที่เราจะเริ่มต้น เราต้องการ python และ pillow ในกรณีของ Linux หมอนอาจมีอยู่แล้วเนื่องจากลินุกซ์รุ่นหลักๆ เช่น Fedora, Debian/Ubuntu และ ArchLinux รวมหมอนไว้ในแพ็คเกจที่ก่อนหน้านี้มี PIL
วิธีที่ง่ายที่สุดในการติดตั้งคือการใช้ pip:
pip install pillow
วิธีการโหลดและแสดงภาพ
อันดับแรก เราต้องการภาพทดสอบเพื่อสาธิตคุณลักษณะที่สำคัญบางประการของการใช้ไลบรารี่ python Pillow
ฉันใช้รูปภาพ Statue_of_unity เป็นภาพตัวอย่าง ดาวน์โหลดรูปภาพและบันทึกไว้ในไดเร็กทอรีการทำงานปัจจุบันของคุณ
#Load and show an image with Pillow from PIL import Image #Load the image img = Image.open('statue_of_unity.jpg') #Get basic details about the image print(img.format) print(img.mode) print(img.size) #show the image img.show()
ผลลัพธ์
JPEG RGB (400, 260)
ด้านบนรูปภาพถูกโหลดโดยตรงโดยใช้ฟังก์ชัน open() ในคลาส Image ส่งคืนวัตถุรูปภาพที่มีข้อมูลพิกเซลสำหรับรูปภาพรวมถึงรายละเอียดเกี่ยวกับรูปภาพ
คุณสมบัติรูปแบบในรูปภาพจะรายงานรูปแบบรูปภาพ (เช่น png, jpeg) โหมดจะรายงานรูปแบบช่องพิกเซล (เช่น CMYK หรือ RGB) และขนาดจะรายงานขนาดของรูปภาพเป็นพิกเซล (เช่น 400*260)
ฟังก์ชัน show() จะแสดงรูปภาพโดยใช้แอปพลิเคชันเริ่มต้นของระบบปฏิบัติการ
แปลงรูปภาพเป็นระดับสีเทา
หากต้องการแปลงรูปภาพเป็นโทนสีเทา ให้แสดงภาพแล้วบันทึกได้อย่างง่ายดาย เพียงดำเนินการดังต่อไปนี้:
#Import required library from PIL import Image #Read an image & convert it to gray-scale image = Image.open('statue_of_unity.jpg').convert('L') #Display image image.show() #Save image image.save('statue_of_unity_gs.jpg')
ผลลัพธ์
หลังจากรันโปรแกรมข้างต้น ไฟล์ “statue_of_unity_gs.jpg” จะถูกสร้างขึ้นในไดเร็กทอรีการทำงานปัจจุบันของคุณ
แปลงเป็นรูปภาพประเภทอื่น
การแปลงรูปภาพประเภทหนึ่ง (jpeg) เป็นอีกประเภทหนึ่ง (เช่น png) นั้นง่ายมากเช่นกัน
from PIL import Image image = Image.open('statue_of_unity.jpg') image.save('statue_of_unity.png')
ไฟล์รูปภาพใหม่ถูกสร้างขึ้นและบันทึกในไดเร็กทอรีเริ่มต้นของเรา
ปรับขนาดรูปภาพ
ขนาด (ขนาด) ของไฟล์ภาพปัจจุบันของเราคือ 400 * 260px ในกรณีที่เราต้องการปรับขนาดและทำให้เป็นขนาด 440 * 600px สามารถทำได้โดย:
จากอิมเมจนำเข้า PIL
image = Image.open('statue_of_unity.jpg') newImage = image.resize((440, 600)) newImage.save('statue_of_unity_440&600.jpg')
ไฟล์ใหม่ 'statue_of_unit_440*600.jpg' ขนาด 440 *600px ถูกสร้างและบันทึกในไดเร็กทอรีการทำงานปัจจุบันของคุณ
อย่างที่คุณเห็น ภาพนี้จะขยายภาพต้นฉบับของเราให้เป็นขนาดที่ต้องการแทนที่จะครอบตัดซึ่งคุณอาจไม่ต้องการ
ในกรณีที่คุณต้องการครอบตัดรูปภาพที่มีอยู่ คุณสามารถทำได้โดยใช้
image.crop(box=None)
หมุนภาพ
ด้านล่างโปรแกรมโหลดรูปภาพ หมุน 45 องศา และแสดงโดยใช้โปรแกรมดูภายนอก
from PIL import Image image = Image.open('statue_of_unity.jpg') image.rotate(45).show()
สร้างภาพขนาดย่อ
โปรแกรมด้านล่างจะสร้างภาพขนาดย่อ 128*128 ของภาพ jpeg ทั้งหมดในไดเร็กทอรีการทำงานปัจจุบันของคุณ
from PIL import Image import glob, os size = 128, 128 for infile in glob.glob("*.jpg"): file, ext = os.path.splitext(infile) image = Image.open(infile) image.thumbnail(size, Image.ANTIALIAS) image.save(file + ".thumbnail", "JPEG")
ผลลัพธ์
จะส่งคืนภาพขนาดย่อของไฟล์ jpeg ทั้งหมดในไดเรกทอรีปัจจุบันของฉัน (c:\python\python361) รวมถึงรูปภาพ 'statue_of_unity.jpg'