Python100Days學習筆記---Day15圖像和辦公文檔處理

圖像和辦公文檔處理

用程序來處理圖像和辦公文檔經常出現在實際開發中,Python的標準庫中雖然沒有直接支持這些操作的模塊,但我們可以通過Python生態圈中的第三方模塊來完成這些操作。

操作圖像

計算機圖像相關知識
1,顏色。如果你有使用顏料畫畫的經歷,那麼一定知道混合紅、黃、藍三種顏料可以得到其他的顏色,事實上這三種顏色就是被我們稱爲美術三原色的東西,它們是不能再分解的基本顏色。在計算機中,我們可以將紅、綠、藍三種色光以不同的比例疊加來組合成其他的顏色,因此這三種顏色就是色光三原色,所以我們通常會將一個顏色表示爲一個RGB值或RGBA值(其中的A表示Alpha通道,它決定了透過這個圖像的像素,也就是透明度)。

名稱	RGBA值	名稱	RGBA值
White	(255, 255, 255, 255)	Red	(255, 0, 0, 255)
Green	(0, 255, 0, 255)	Blue	(0, 0, 255, 255)
Gray	(128, 128, 128, 255)	Yellow	(255, 255, 0, 255)
Black	(0, 0, 0, 255)	Purple	(128, 0, 128, 255)

2,像素。對於一個由數字序列表示的圖像來說,最小的單位就是圖像上單一顏色的小方格,這些小方塊都有一個明確的位置和被分配的色彩數值,而這些一小方格的顏色和位置決定了該圖像最終呈現出來的樣子,它們是不可分割的單位,我們通常稱之爲像素(pixel)。每一個圖像都包含了一定量的像素,這些像素決定圖像在屏幕上所呈現的大小。

用Pillow操作圖像
Pillow是由從著名的Python圖像處理庫PIL發展出來的一個分支,通過Pillow可以實現圖像壓縮和圖像處理等各種操作。可以使用下面的命令來安裝Pillow。

pip install pillow

Pillow中最爲重要的是Image類,讀取和處理圖像都要通過這個類來完成。

>>> from PIL import Image
>>>
>>> image = Image.open('./res/guido.jpg')
>>> image.format, image.size, image.mode
('JPEG', (500, 750), 'RGB')
>>> image.show()

在這裏插入圖片描述

1,剪裁圖像

>>> image = Image.open('./res/guido.jpg')
>>> rect = 80, 20, 310, 360
>>> image.crop(rect).show()

在這裏插入圖片描述
2,生成縮略圖

>>> image = Image.open('./res/guido.jpg')
>>> size = 128, 128
>>> image.thumbnail(size)
>>> image.show()

在這裏插入圖片描述
3,縮放和黏貼圖像

>>> image1 = Image.open('./res/luohao.png')
>>> image2 = Image.open('./res/guido.jpg')
>>> rect = 80, 20, 310, 360
>>> guido_head = image2.crop(rect)
>>> width, height = guido_head.size
>>> image1.paste(guido_head.resize((int(width / 1.5), int(height / 1.5))), (172, 40))

在這裏插入圖片描述
4,旋轉和翻轉

>>> image = Image.open('./res/guido.png')
>>> image.rotate(180).show()
>>> image.transpose(Image.FLIP_LEFT_RIGHT).show()

在這裏插入圖片描述

在這裏插入圖片描述

5,操作像素

>>> image = Image.open('./res/guido.jpg')
>>> for x in range(80, 310):
...     for y in range(20, 360):
...         image.putpixel((x, y), (128, 128, 128))
... 
>>> image.show()

在這裏插入圖片描述

6,濾鏡效果

>>> from PIL import Image, ImageFilter
>>>
>>> image = Image.open('./res/guido.jpg')
>>> image.filter(ImageFilter.CONTOUR).show()

在這裏插入圖片描述
處理Excel電子表格

Python的openpyxl模塊讓我們可以在Python程序中讀取和修改Excel電子表格,當然實際工作中,我們可能會用LibreOffice Calc和OpenOffice Calc來處理Excel的電子表格文件,這就意味着openpyxl模塊也能處理來自這些軟件生成的電子表格。關於openpyxl的使用手冊和使用文檔可以查看它的官方文檔

處理Word文檔
利用python-docx模塊,Pytho 可以創建和修改Word文檔,當然這裏的Word文檔不僅僅是指通過微軟的Office軟件創建的擴展名爲docx的文檔,LibreOffice Writer和OpenOffice Writer都是免費的字處理軟件

處理PDF文檔
PDF是Portable Document Format的縮寫,使用.pdf作爲文件擴展名。接下來我們就研究一下如何通過Python實現從PDF讀取文本內容和從已有的文檔生成新的PDF文件。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章