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