首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 更多程式設計知識

Python PIL/Pillow 影像處理入門:縮放、旋轉、繪圖、濾鏡與格式轉換

     編輯:更多程式設計知識

PIL (Python Imaging Library) 現由 Pillow 維護,提供豐富影像處理功能。

核心功能類別


from PIL import Image, ImageDraw, ImageEnhance

class MyImg:
    def __init__(self, open_file, save_file):
        self.img = Image.open(open_file)
        self.save_file = save_file

    def change_size(self, percent=100, height=None, width=None):
        w, h = self.img.size
        if not (height and width):
            new_img = self.img.resize((w*percent//100, h*percent//100), Image.BILINEAR)
        else:
            new_img = self.img.resize((width, height), Image.BILINEAR)
        new_img.save(self.save_file)

    def rotation(self, angle):
        self.img.rotate(angle).save(self.save_file)

    def save_as(self, filename):
        self.img.save(filename)  # 依副檔名決定格式

    def draw_shapes(self):
        draw = ImageDraw.Draw(self.img)
        w, h = self.img.size
        draw.line((0, 0, w-1, h-1), fill=255)
        draw.line((0, h-1, w-1, 0), fill=255)
        draw.arc((0, 0, w-1, h-1), 0, 360, fill=255)
        self.img.save(self.save_file)

    def enhance(self):
        ImageEnhance.Brightness(self.img).enhance(2.0).save(self.save_file)
        ImageEnhance.Sharpness(self.img).enhance(7.0).save(self.save_file)
        ImageEnhance.Contrast(self.img).enhance(2.0).save(self.save_file)

效果展示

原圖:

銳化後:

常用模組

  • Image:核心開啟/儲存/幾何變換
  • ImageDraw:向量繪圖
  • ImageEnhance:亮度/銳度/對比度調整
  • ImageFilter:模糊/銳化/邊緣偵測等濾鏡
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved