PIL 一秒切九图 朋友圈发图神器

本文介绍了一种使用Python和PIL库进行图片处理的方法,将一张大图等分为9张小图,并对每张小图进行圆形裁剪。通过计算像素点是否在圆方程内来决定保留还是替换为白色,最终保存处理后的9张图片。

注意图片像素返回值是(宽度,高度),pil填像素点坐标原点左上角。

判断像素点是否在圆方程中。

import numpy as np
from PIL import Image

file = input()
im = Image.open(file)
R,C = im.size
newR = R//3
newC = C//3

picls = []
for i in range(9):
    picls.append(Image.new('RGB', (newR, newC),(255,255,255)))

cnt = 0
for i in range(3):
    for j in range(3):
        for x in range(i * newC, (i + 1) * newC):
            for y in range(j*newR,(j+1)*newR):
                if 4*C*C*(y-R//2)*(y-R//2) + 4*R*R*(x - C//2)*(x - C//2) <= R*R*C*C:
                    r, g, b = im.getpixel((y, x))
                else :
                    r, g, b = 255,255,255
                picls[cnt].putpixel((y-(j*newR),x-i*newC),(r,g,b))
        cnt+=1


for i in range(9):
    picls[i].save("".join(str(i))+".jpg")

 

 

转载于:https://www.cnblogs.com/TreeDream/p/9827637.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值