自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

一行代碼搞定的事還用個錘子的 PS 啊

開發(fā) 后端
Python 屆處理圖片最強的庫是 PIL(Python Image Library),但由于該庫只支持 2.x 版本,于是有一批樂于助人的程序員在此基礎(chǔ)上做了擴展,出了一個兼容 3.x 的版本也就是 Pillow,因此,我們今天要用的庫就是 Pillow。

[[431960]]

本文轉(zhuǎn)載自微信公眾號「Python技術(shù)」,作者派森醬 。轉(zhuǎn)載本文請聯(lián)系Python技術(shù)公眾號。

在我們的日常生活和工作中有不少場景需要簡單處下理圖片,很多人都是依賴 PS、美圖秀秀等各種圖像處理工具,殊不知在你打開軟件的一瞬間 Python 就已經(jīng)將圖片處理完了。聽起來是不是很神奇,正所謂是 Python 在手,啥也不愁。

Python 屆處理圖片最強的庫是 PIL(Python Image Library),但由于該庫只支持 2.x 版本,于是有一批樂于助人的程序員在此基礎(chǔ)上做了擴展,出了一個兼容 3.x 的版本也就是 Pillow,因此,我們今天要用的庫就是 Pillow。

安裝

老規(guī)矩,先通過 pip 安裝到本地機器。

  1. pip install Pillow 

基本操作

打開圖像

可以通過 Image 類來操控圖片,比如打開一張圖片并獲取其基本信息。

  1. from PIL import Image, ImageFilter, ImageEnhance, ImageDraw, ImageFont 
  2.  
  3. img = Image.open('cat.jpg'
  4. print(F'圖片大小為 {img.format}, 格式為 {img.size}, 模式為{img.mode}'
  5.  
  6. # 圖片大小為 JPEG, 格式為 (3458, 3456), 模式為 RGB 

轉(zhuǎn)換格式

如果給目標(biāo)圖片轉(zhuǎn)換格式,可以通過 save 函數(shù)來實現(xiàn)。

  1. img.save("cat.jpg "

之后你就會在同目錄下得到一張擴展名為 png 的圖片了。

[[431961]]

展示圖片

直接通過 show 函數(shù)來顯示圖片。

  1. img.show() 

剪裁

使用 crop 函數(shù)傳入一個四元祖坐標(biāo)來剪裁圖片。

  1. point = (1500, 800, 3000, 2300) 
  2. img_crop = img.crop(point) 
  3. img_crop.show() 

合并

通過 paste 函數(shù)傳入合并的圖像和坐標(biāo)來實現(xiàn)兩張圖片的合并,那如果要合并多張圖片呢,當(dāng)然是直接調(diào)用多次就好了呀。

  1. img.paste(img_crop, (0, 0), None) 
  2. img.show( 

縮略圖

有時候圖像過大,這時候就顯示出縮略圖的必要了,可以通過 thumbnail 函數(shù)傳入 size 來實現(xiàn)圖片的縮小。

  1. thumb_size = (345, 345) 
  2. img.thumbnail(thumb_size) 
  3. img.show() 

旋轉(zhuǎn)

使用 transpose 函數(shù)傳入旋轉(zhuǎn)角度來實現(xiàn)圖片的翻轉(zhuǎn)。

可以傳入的參數(shù)有以下幾種:

  • Image.ROTATE_90:逆時針旋轉(zhuǎn) 90°
  • Image.ROTATE_180:逆時針旋轉(zhuǎn) 180°
  • Image.ROTATE_270:逆時針旋轉(zhuǎn) 270°
  • Image.FLIP_LEFT_RIGHT:左右翻轉(zhuǎn)
  • Image.FLIP_TOP_BOTTOM:上下翻轉(zhuǎn)
  1. img_rotate = img.transpose(Image.ROTATE_90) 
  2. img_rotate.show() 

濾鏡

當(dāng)然,我們還可以對圖片做一些濾鏡處理。

  • 高斯模糊處理
  1. img_gaussianblur = img.filter(ImageFilter.GaussianBlur(30)) 
  2. img_gaussianblur.show() 

  • 獲取照片輪廓
  1. img_contour = img.filter(ImageFilter.CONTOUR) 
  2. img_contour.show() 

  • 亮度增強

如果照片亮度不夠,還可以對照片進(jìn)行亮度增強。

  1. color = ImageEnhance.Color(img) 
  2. img_color = color.enhance(1.5) 
  3. img_color.show() 

二次創(chuàng)作

當(dāng)然,如果想對圖片進(jìn)行二次創(chuàng)作,比如添加一些輔助線,文字之類的可以用 ImageDraw 類來完成。

畫線

  1. draw = ImageDraw.Draw(img) 
  2. draw.line((0, 0) + img.size, fill=20, width=3) 
  3. draw.line((0, img.size[1], img.size[0], 0), fill=200, width=3) 
  4. img.show() 

文字

  1. draw = ImageDraw.Draw(img) 
  2. font = ImageFont.truetype('AliPuHui-Bold.ttf', 200) 
  3. text = 'This is a cat!' 
  4. draw.text((450, 450), text, font=font, fill='pink'
  5. img.show() 

當(dāng)然,如果有多行文字的話,直接加入換行符 \n 即可。

總結(jié)

今天派森醬帶大家一起通過使用 Pillow 庫對圖片進(jìn)行一些簡單的操作,事實上 Pillow 庫遠(yuǎn)不止此,將這些簡單的操作進(jìn)行組合甚至可以自創(chuàng)表情包,期待小伙伴們自行發(fā)掘更多更好玩的用法呀~

 

責(zé)任編輯:武曉燕 來源: Python技術(shù)
相關(guān)推薦

2021-02-24 14:30:59

JavaScript語言開發(fā)

2024-05-31 14:04:18

2025-02-12 09:55:01

Java代碼性能

2017-04-05 11:10:23

Javascript代碼前端

2024-09-18 06:10:00

條件表達(dá)式判斷代碼Python

2022-02-24 10:40:14

Python代碼

2025-04-09 11:20:00

LINQ代碼數(shù)據(jù)處理

2023-11-10 09:41:44

Python代碼

2016-12-02 08:53:18

Python一行代碼

2021-11-02 16:25:41

Python代碼技巧

2024-12-03 09:23:20

2024-09-26 15:46:54

Python編程

2017-10-26 13:40:11

Python一行代碼

2020-04-22 13:56:26

python函數(shù)編程

2020-08-12 14:54:00

Python代碼開發(fā)

2024-05-31 13:14:05

2014-02-12 13:43:50

代碼并行任務(wù)

2022-04-09 09:11:33

Python

2021-11-05 06:57:50

架構(gòu)工具代碼

2024-12-30 08:10:00

C++17代碼文件
點贊
收藏

51CTO技術(shù)棧公眾號