震惊了!Python大牛带你体验Python强大的图像处理功能,如此与众不同!

说道图像处理很多人会想到PS,美图,等一系列P图软件,但今天小编所说的用python进行图像处理相对于其他的软件处理有很大的区别,接下来让我们一起来看看怎么实现用代码进行图像处理吧!

python的PIL模块是专门用来处理图片,其功能非常强大。

第一步:图片裁剪

from PIL import Image

im = Image.open("jgz.jpg")

box = (10,10,100,100)

region = im.crop(box)

region.save("cutting.jpg")

将jgz.jpg图片的((10,10), (10,100),(100,10),(100,100))所划出的区域进行裁切并保存在cutting.jpg当中

第二步:图片拼接

from PIL import Image

img = Image.open("./background.jpg")

jgz = Image.open("./jgz1.jpg")

img.paste(jgz,(196,139))

img.save("./out.jpg")

将background.jpg当做背景,将jgz1.jpg拼在其上边,位置是(196.139)。并保存为out.jpg

第三步:图片缩放

from PIL import Image

infile = './jgz.jpg'

outfile = './jgz1.jpg'

im = Image.open(infile)

(x,y) = im.size

x_s = 310

y_s = y*x_s/x

out=im.resize((x_s,y_s),Image.ANTIALIAS)

out.save(outfile)

将jpz.jpg的横向像素强制为310,纵横比不变。并保存在jgz1.jpg

第四步:在图片上添加文字

#coding=utf-8

from PIL import Image, ImageDraw, ImageFont

txt = "你这个死宅说话"

txt2 = " 还挺搞笑的"

font_img = Image.open("./img.jpg")

draw = ImageDraw.Draw(font_img)

ttfront = ImageFont.truetype('./simhei.ttf',55)

draw.text((140,560),unicode(txt,"UTF-8"), fill=(0,0,0), font=ttfront)

draw.text((160,630),unicode(txt2,"UTF-8"), fill=(0,0,0), font=ttfront)

font_img.save("./out.jpg")

保证 simhei.ttf的路径可以找到。在图片 img.jpg的(140,560) (160,630)两个位置分别写入txt 和 txt2这两句汉字。文件编码是utf-8,并另存为out.jpg。小编推荐一个学Python的学习裙【五八八,零九零,九四二】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有很多干货和技术分享

第五步:图片alpha通道化,白色变成透明

from PIL import Image

img = Image.open("jgz.jpg")

img = img.convert("RGBA")

datas = img.getdata()

newData = list()

for item in datas:

if item[0] >220 and item[1] > 220 and item[2] > 220:

newData.append(( 255, 255, 255, 0))

else:

newData.append(item)

img.putdata(newData)

img.save("jgz_alpha.png","PNG")

将jgz.jpg的白色透明化并另存为jgz_alpha.png。注意透明化的图片文件的格式一般为png

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180302A0PRKP00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券