安装Pillow包
1
|
pip install Pillow
|
图片划线
1
2
3
4
5
6
7
8
|
from PIL import Image, ImageDraw
im = Image. open ( "blur.jpg" )
draw = ImageDraw.Draw(im)
draw.line(( 0 , 0 ) + im.size, fill = 128 )
draw.line(( 0 , im.size[ 1 ], im.size[ 0 ], 0 ), fill = 128 )
del draw
# write to stdout
im.save( "blur.jpg" , "PNG" )
|
图片写字
有的时候我们可能需要往图片上写一些文字,比如说水印什么的,只要选择好我们本地的字体文件,直接就可以在图片上写字了
1
2
3
4
5
6
7
8
9
|
from PIL import ImageFont, ImageDraw,Image, ImageDraw
image = Image. open ( "image.png" ).convert( 'RGBA' )
txt = Image.new( 'RGBA' , image.size, ( 0 , 0 , 0 , 0 ))
font = ImageFont.truetype( "c:/Windows/fonts/Tahoma.ttf" , 20 )
draw = ImageDraw.Draw(txt)
draw.text((txt.size[ 0 ] - 100 , txt.size[ 1 ] - 30 ), "linshiyingdi" , font = font)
out = Image.alpha_composite(image, txt)
out.save( "imageWithText.png" , "png" )
out.show()
|
图片加图片水印
文字水印有时候不好看,想改成图片水印,也是可以的
1
2
3
4
5
6
7
8
9
|
from PIL import ImageFont, ImageDraw, Image, ImageDraw
image = Image. open ( "image.png" )
logo = Image. open ( "logo.png" )
layer = Image.new( 'RGBA' , image.size, ( 0 , 0 , 0 , 0 ))
layer.paste(logo, ( 50 , 60 ))
out = Image.composite(layer, image, layer)
out.save( "imageWithLogo.png" , "png" )
out.show()
|
如果水印图片过大时,可以直接缩小点,直接使用图片自带的thumbnail方法就行
1
2
3
4
5
6
7
8
9
10
|
from PIL import ImageFont, ImageDraw, Image, ImageDraw
image = Image. open ( "image.png" )
logo = Image. open ( "logo.png" )
logo.thumbnail(( 200 , 100 ))
layer = Image.new( 'RGBA' , image.size, ( 0 , 0 , 0 , 0 ))
layer.paste(logo, ( 50 , 60 ))
out = Image.composite(layer, image, layer)
out.save( "imageWithLogo.png" , "png" )
out.show()
|
如下图,我们的水印图片放到了左上角,大小也非常合适。
图片模糊
1
2
3
4
5
6
|
from PIL import Image, ImageFilter
# 打开一个jpg图像文件,直接放到当前路径下方便点:
im = Image. open ( '2822.jpg' )
# 应用模糊滤镜:
im2 = im. filter (ImageFilter.BLUR)
im2.save( 'blur.jpg' , 'jpeg' )
|
图片截取
1
2
3
4
5
|
from PIL import Image
img = Image. open ( "image.png" )
print (img.size)
cropped = img.crop(( 0 , 0 , 1303 , 734 )) # (left, upper, right, lower)
cropped.save( "imageCropped.png" )
|
可以看到的是如果这个图片的长度和宽度比1303和734小的时候会有透明的填充,感觉很难看,可以将对应的长度和宽度和这两个数字做个判断
1
2
3
4
5
6
7
8
9
10
11
12
|
from PIL import Image
img = Image. open ( "image.png" )
print (img.size)
right = 1303
lower = 734
if img.size[ 0 ] < 1303 :
right = img.size[ 0 ]
if img.size[ 1 ] < 734 :
lower = img.size[ 1 ]
cropped = img.crop(( 0 , 0 , right, lower)) # (left, upper, right, lower)
cropped.save( "imageCropped.png" )
|
这样白边就被干掉了
总结
人生苦短,我用 Python,在强大的Pillow帮助下,我们只需几行代码就可以实现图片的各种处理。
以上就是python 对图片进行简单的处理的详细内容,更多关于python 图片处理的资料请关注服务器之家其它相关文章!
原文链接:https://juejin.cn/post/6974969446754435102