Python__module(Tools-Image Processing)__PIL

Einführung

Modul zur Bildverarbeitung.


Referenzcode

Bild speichern

from PIL import Image

def imgSave():
    img = Image.open("./1.jpeg")
    # img.show()
    img.save("./newpt.jpg")

Bilddrehung

from PIL import Image

def transform():
    img = Image.open("./1.jpeg")
    # 水平旋转
    pt1 = img.transpose(Image.FLIP_LEFT_RIGHT)
    pt1.save("level.jpg")

    # 垂直翻转
    pt2 = img.rotate(180)
    pt2.save("rotate.jpg")

    # 水平+垂直翻转
    pt3 = img.transpose(Image.FLIP_LEFT_RIGHT).rotate(180)
    pt3.save("level_and_rotate.jpg")

Fügen Sie Text zu Bildern hinzu

from PIL import Image, ImageDraw, ImageFont

def addText():
    img = Image.open("1.jpeg")
    # 调用画图模块
    draw = ImageDraw.Draw(img)
    # 设置字体
    # ->参数一:文字在图片的位置:(x, y)
    # ->参数二:文字内容
    # ->参数三:字体颜色,当然颜色也可以用RGB值指定
    # ->参数四:字体类型
    # font=ImageFront.truetype('font.ttf',24)
    font = ImageFont.truetype("simhei", 50)
    draw.text((50, 30), "test", fill="green", font=font)  # font=tfont#中文 utf-8
    img.save("font.jpg")

Bildfilter

from PIL import Image, ImageFilter

def filter(self):
    # 滤镜:描绘轮廓(素描效果)
    # 滤镜功能(更多参考文档)
    # ->描绘轮廓
    img = Image.open("cv2-test.jpg")
    img = img.filter(ImageFilter.CONTOUR)
    img.save("filter.jpg")
    img.show()

Bildheftung

from PIL import Image, ImageDraw

def montage(self):
    # 打开图片
    img1 = Image.open("10.jpg")
    img2 = Image.open("cv2-test.jpg")
    # 查看图片尺寸,便于拼接图片
    print(img1.size)
    print(img2.size)
    # 新建空白图片,三个参数分别是模式(RGB/RGBA)、大小、颜色
    m = Image.new(mode="RGB", size=(1600, 614), color=(255, 100, 50))
    # 拼接图片,第一个参数是图片,第二个是起始位置
    m.paste(img1, (0, 0))
    m.paste(img2, (800, 0))
    m.show()

Bildzuschnitt

from PIL import Image

def clip(self):
    img = Image.open("10.jpg")
    print(img.size)
    imgCut = img.crop((100, 200, 500, 600))
    imgCut.show()

Bildgröße ändern

from PIL import Image

def resize(self):
    img = Image.open("10.jpg")
    # 获得图像尺寸:
    w, h = img.size
    # 缩放到50%:
    img.thumbnail((w // 2, h // 2))  # 像素
    # 把缩放后的图像用jpeg格式保存:
    img.save("zoom.jpg")

Bildkompression 

"""
实现图片压缩
1.保持图片大小比例不变
2.使用Image里面的resize进行
"""
from PIL import Image
import os

# 获取文件夹里面的图片
path_list = ["pictures" + "\\" + i for i in os.listdir("pictures")]
# print(path_list)
# 循环图片路径,依次对图片进行压缩
for path in path_list:
    im = Image.open(path)
    (x, y) = im.size  # 读取图片尺寸(像素)
    print("原图:", x, y)
    print("压缩后:", x * 0.7, y * 0.7)
    x_1 = int(x * 0.7)  # 定义缩小后的标准宽度
    y_1 = int(y * 0.7)  # 计算缩小后的高度
    out = im.resize((x_1, y_1), Image.ANTIALIAS)  # 改变尺寸,保持图片高品质
    # 判断图片的通道模式,若图片在RGBA模式下,需先将其转变为RGB模式
    if out.mode == "RGBA":
        # 转化为rgb格式
        out = out.convert("RGB")
    # 最后保存为jpg格式的图片,这里因为图片本身为jpg所以后缀不更改
    out.save("pictures_new\{}".format(path.split("\\")[-1]))

Guess you like

Origin blog.csdn.net/werdasooooo/article/details/134927228