会照片处理的不仅是ps,还有python!

2021年09月15日 阅读数:2
这篇文章主要向大家介绍会照片处理的不仅是ps,还有python!,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

 

会照片处理的不仅是ps,还有python!_python

 

女友总是吵着要修图,做为程序员,只会敲代码,不会ps啊,真是使人头大。   会照片处理的不仅是ps,还有python!_python_02

 

程序员是这么容易被难到的吗?确定不会!最近发现了程序员的p图神器——python。   python也能够修图吗?是滴!下面就带你进入python的修图世界。(如下面这张照片为例。)   会照片处理的不仅是ps,还有python!_python_03

 库名称:Pillow   Pillow是Python中最流行的图像预处理函数库,支持一系列简单或复杂的图像处理功能, 也是其余Python库(如SciPy和Matplotlib)可以处理图像的基础。 01   安装与导入

 

直接在cmd中使用pip方法安装pillow库:

 

pip install Pillow

 

须要注意的是,其在Python2中的库名为PIL,而非Pillow。

 

导入:

 

from PIL import Image     02   基本操做  
01 打开图片
使用Image模块中的open函数打开一张图片:
 
im = Image.open( '1.jpg')

 

02 查看格式
 
format属性定义了图像的格式,若是图像不是从文件打开的,那么该属性值为None:
 
im.format

 

输出:'JPEG'
03 查看大小
 
size属性是一个tuple,表示图像的宽和高(单位为像素):
 
im.size

 

输出:(960, 640)
04 查看模式
 
mode属性为表示图像的模式,模式属性以下:
 
会照片处理的不仅是ps,还有python!_python_04

 

im. mode

 

输出:'RGB'

 

05 查看文件名
 
im.filename

 

输出:'1.jpg'

 

06 查看位数
 
im.bits

 

输出:8
07 显示图片
 
标准版本的show()方法不是颇有效率,由于它先将图像保存为一个临时文件,而后使用查看器进行显示。
 
im.show()

 

08 保存图片
 
im.save( '2.jpg') 03   图片处理
01 图片裁剪 使用open方法读取图片,而后查看它的size,size的输出是(960, 640),也就是图片的宽度和高度。

 

以后咱们调用crop方法来对图片进行裁剪,crop须要给定一个box参数,box是一个四元组,元组中元素的顺序是须要裁剪获得的图片在原图中的左、上、右、下坐标,即(left, upper, right, lower)。

 

而后,咱们使用save方法保存裁剪获得的图片。  from PIL import Image
img = Image. open( "1.jpg")
print(img.size)
cropped = img.crop(( 200, 0, 600, 400)) # ( left, upper, right, lower)
cropped.save( "A.jpg") 裁剪后的图片:   会照片处理的不仅是ps,还有python!_python_05

02 复制粘贴python

Image的copy函数如其名会产生一个原图像的副本,在这个副本上的任何操做不会影响到原图像。   paste()方法用于将一个图像粘贴(覆盖)在另外一个图像上面。谁调用它,他就在该Image对象上直接做修改。cropedIm = im.crop(( 400, 0, 800, 800))
im.paste(cropedIm, ( 0, 0))
im.show()
im.save( "B.jpg")

 

会照片处理的不仅是ps,还有python!_python_06以裁剪后的图像宽度和高度为间隔,在循环内不断粘贴在副本中,会发生什么呢?cropedIm = im.crop(( 300, 50, 500, 350))
crop_width, crop_height = cropedIm.size
width, height = im.size
copyIm = im. copy()
for left in range( 0, width, crop_width):
for top in range( 0, height, crop_height):
copyIm.paste(cropedIm, ( left, top))
copyIm.save( "C.jpg")   有一点像证件照的效果:   会照片处理的不仅是ps,还有python!_python_07 03 图片缩放 resize方法返回指定宽高度的新Image对象,接受一个含有宽高的元组做为参数。宽高的值得是整数。 width, height = im.size
resizedIm = im.resize((width, height+(
960 - 640 )))
resizedIm.save( "D.jpg" ) 会照片处理的不仅是ps,还有python!_python_08人也变瘦了,能够看到resize不是等比例缩放的,不过女生应该蛮喜欢变瘦的吧。 04 图片旋转图像能够用rotate()方法旋转,该方法返回旋转后的新Image对象,并保持原始Image对象不变。rotate()的参数是一个整数或浮点数。 im = Image. open( "1.jpg")
im.rotate( 90).save( "E.jpg")
im.rotate( 270).save( "F.jpg")
im.rotate( 180).save( "G.jpg")
im.rotate( 20).save( "H.jpg") 会照片处理的不仅是ps,还有python!_python_09 会照片处理的不仅是ps,还有python!_python_10 会照片处理的不仅是ps,还有python!_python_11 会照片处理的不仅是ps,还有python!_python_12由上到下,分别是旋转了90°,180°, 270°、普通的20°。   当图像旋转90或270度时,宽度和高度会变化。在windows上, 会使用黑色的背景来填补旋转形成的缝隙。 05 画面加强

 

PIL模块中有一个叫作ImageEnhance的类,该类专门用于图像的加强处理,不只能够加强(或减弱)图像的亮度、对比度、色度,还能够用于加强图像的锐度。 5.1 亮度加强Brightnessenh_bri = ImageEnhance.Brightness( im)
brightness = 1.5
image_brightened = enh_bri.enhance(brightness)
image_brightened.show() 会照片处理的不仅是ps,还有python!_python_13   5.2 对比度加强Contrast:  enh_con = ImageEnhance.Contrast( im)
contrast = 1.5
image_contrasted = enh_con.enhance(contrast)
image_contrasted.show()

 

会照片处理的不仅是ps,还有python!_python_14

 

 

5.3 色度加强Color:

 

enh_col = ImageEnhance.Color( im)
color = 1.5
image_colored = enh_col.enhance(color)
image_colored.show()

 

会照片处理的不仅是ps,还有python!_python_15

 

 

5.4 锐度加强Sharpness:

 

enh_sha = ImageEnhance.Sharpness( im)
sharpness = 6.0
image_sharped = enh_sha.enhance(sharpness)
image_sharped.show()

 

会照片处理的不仅是ps,还有python!_python_16

 

调节亮度、对比度、色彩、锐度等,不就等于给照片加了滤镜吗?并且效果还不错!

 

 

06 图像过滤

 

在图像处理中,常常须要对图像进行平滑、锐化、边界加强等滤波处理。 在使用PIL图像处理库时,咱们经过Image类中的成员函数filter()来调用滤波函数对图像进行滤波,而滤波函数则经过ImageFilter类来定义的。

 

6.1 高斯模糊   im.filter(ImageFilter.GaussianBlur).save("J .jpg ")   会照片处理的不仅是ps,还有python!_python_17

 

 

6.2 浮雕

 

im .filter( ImageFilter .EMBOSS) .save(" L .jpg")

 

会照片处理的不仅是ps,还有python!_python_18 6.3 轮廓

 

im .filter( ImageFilter .CONTOUR) .save(" M .jpg")

 

会照片处理的不仅是ps,还有python!_python_19

 

除此以外,pillow中还提供如下滤波可供使用:

 

# 锐化
im. filter(ImageFilter.SHARPEN).save( '.jpg')
# 平滑
im. filter(ImageFilter.SMOOTH).save( '.jpg')
# 细节
im. filter(ImageFilter.DETAIL).save( '.jpg')
# 普通模糊
im. filter(ImageFilter.BLUR).save( '.jpg')
# 边缘加强
im. filter(ImageFilter.EDGE_ENHANCE).save( '.jpg')
# 找到边缘
im. filter(ImageFilter.FIND_EDGES).save( '.jpg')

 

关于python中pillow库的照片处理到这儿就差很少了, 虽然使 用python进行照 片处理跟ps仍是有必定的差异,但基本操做没有问题,四舍五入咱们仍是会修图的!   会照片处理的不仅是ps,还有python!_python_20 会照片处理的不仅是ps,还有python!_python_21