安装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