Python มีไลบรารี่มากมายสำหรับการประมวลผลภาพ รวมถึง Pillow, Python Imaging library, scikit-image หรือ OpenCV
เราจะใช้ไลบรารี่ Pillow สำหรับการประมวลผลภาพที่นี่ เนื่องจากมีขั้นตอนมาตรฐานหลายขั้นตอนสำหรับการจัดการภาพ และรองรับช่วงของรูปแบบไฟล์ภาพ เช่น jpeg, png, gif, tiff, bmp และอื่นๆ
ไลบรารี่ Pillow สร้างขึ้นบน Python Imaging Library (PIL) และมีคุณสมบัติมากกว่าไลบรารีพาเรนต์ (PIL)
การติดตั้ง
เราสามารถติดตั้งหมอนโดยใช้ pip ได้ ดังนั้นเพียงพิมพ์ follow ใน command terminal −
$ pip install pillow
การใช้งานหมอนขั้นพื้นฐาน
มาลองใช้งานภาพขั้นพื้นฐานกันโดยใช้คลังหมอนกันเถอะ
from PIL import Image image = Image.open(r"C:\Users\rajesh\Desktop\imagefolder\beach-parga.jpg") image.show() # The file format of the source file. # Output: JPEG print(image.format) # The pixel format used by the image. Typical values are “1”, “L”, “RGB”, or “CMYK.” # Output: RGB print(image.mode) # Image size, in pixels. The size is given as a 2-tuple (width, height). # Output: (2048, 1365) print(image.size) # Colour palette table, if any. #Output: None print(image.palette)
ผลลัพธ์
JPEG RGB (2048, 1365) None
กรองภาพตามขนาด
โปรแกรมด้านล่างจะลดขนาดของรูปภาพทั้งหมดจากพาธเฉพาะ (พาธเริ่มต้น:ไดเร็กทอรีการทำงานปัจจุบัน) เราสามารถเปลี่ยน max_height, max_width หรือนามสกุลของรูปภาพในโปรแกรมด้านล่าง:
รหัส
import os from PIL import Image max_height = 900 max_width = 900 extensions = ['JPG'] path = os.path.abspath(".") def adjusted_size(width,height): if width > max_width or height>max_height: if width > height: return max_width, int (max_width * height/ width) else: return int (max_height*width/height), max_height else: return width,height if __name__ == "__main__": for img in os.listdir(path): if os.path.isfile(os.path.join(path,img)): img_text, img_ext= os.path.splitext(img) img_ext= img_ext[1:].upper() if img_ext in extensions: print (img) image = Image.open(os.path.join(path,img)) width, height= image.size image = image.resize(adjusted_size(width, height)) image.save(os.path.join(path,img))
ผลลัพธ์
another_Bike.jpg clock.JPG myBike.jpg Top-bike-wallpaper.jpg
เมื่อเรียกใช้สคริปต์ข้างต้น ขนาดของรูปภาพที่มีอยู่ในไดเรกทอรีการทำงานปัจจุบัน (ซึ่งปัจจุบันคือโฟลเดอร์สคริปต์ pyton) จะมีขนาดสูงสุด 900 (ความกว้าง/ความสูง)