欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

在Python中使用PIL模塊處理圖像的教程

 更新時(shí)間:2015年04月29日 09:57:55   作者:廖雪峰  
這篇文章主要介紹了在Python中使用PIL模塊處理圖像的教程,PIL模塊在Python編程中也是十分常用的模塊,示例代碼基于Python2.x版本,需要的朋友可以參考下

PIL:Python Imaging Library,已經(jīng)是Python平臺事實(shí)上的圖像處理標(biāo)準(zhǔn)庫了。PIL功能非常強(qiáng)大,但API卻非常簡單易用。
安裝PIL

在Debian/Ubuntu Linux下直接通過apt安裝:

$ sudo apt-get install python-imaging

Mac和其他版本的Linux可以直接使用easy_install或pip安裝,安裝前需要把編譯環(huán)境裝好:

$ sudo easy_install PIL

如果安裝失敗,根據(jù)提示先把缺失的包(比如openjpeg)裝上。

Windows平臺就去PIL官方網(wǎng)站下載exe安裝包。
操作圖像

來看看最常見的圖像縮放操作,只需三四行代碼:

import Image

# 打開一個(gè)jpg圖像文件,注意路徑要改成你自己的:
im = Image.open('/Users/michael/test.jpg')
# 獲得圖像尺寸:
w, h = im.size
# 縮放到50%:
im.thumbnail((w//2, h//2))
# 把縮放后的圖像用jpeg格式保存:
im.save('/Users/michael/thumbnail.jpg', 'jpeg')

其他功能如切片、旋轉(zhuǎn)、濾鏡、輸出文字、調(diào)色板等一應(yīng)俱全。

比如,模糊效果也只需幾行代碼:

import Image, ImageFilter

im = Image.open('/Users/michael/test.jpg')
im2 = im.filter(ImageFilter.BLUR)
im2.save('/Users/michael/blur.jpg', 'jpeg')

效果如下:

201542995252889.jpg (500×300)

PIL的ImageDraw提供了一系列繪圖方法,讓我們可以直接繪圖。比如要生成字母驗(yàn)證碼圖片:

import Image, ImageDraw, ImageFont, ImageFilter
import random

# 隨機(jī)字母:
def rndChar():
  return chr(random.randint(65, 90))

# 隨機(jī)顏色1:
def rndColor():
  return (random.randint(64, 255), random.randint(64, 255), random.randint(64, 255))

# 隨機(jī)顏色2:
def rndColor2():
  return (random.randint(32, 127), random.randint(32, 127), random.randint(32, 127))

# 240 x 60:
width = 60 * 4
height = 60
image = Image.new('RGB', (width, height), (255, 255, 255))
# 創(chuàng)建Font對象:
font = ImageFont.truetype('Arial.ttf', 36)
# 創(chuàng)建Draw對象:
draw = ImageDraw.Draw(image)
# 填充每個(gè)像素:
for x in range(width):
  for y in range(height):
    draw.point((x, y), fill=rndColor())
# 輸出文字:
for t in range(4):
  draw.text((60 * t + 10, 10), rndChar(), font=font, fill=rndColor2())
# 模糊:
image = image.filter(ImageFilter.BLUR)
image.save('code.jpg', 'jpeg');

我們用隨機(jī)顏色填充背景,再畫上文字,最后對圖像進(jìn)行模糊,得到驗(yàn)證碼圖片如下:

201542995319069.jpg (240×60)

如果運(yùn)行的時(shí)候報(bào)錯(cuò):

IOError: cannot open resource

這是因?yàn)镻IL無法定位到字體文件的位置,可以根據(jù)操作系統(tǒng)提供絕對路徑,比如:

復(fù)制代碼 代碼如下:
'/Library/Fonts/Arial.ttf'

要詳細(xì)了解PIL的強(qiáng)大功能,請請參考PIL官方文檔:

http://effbot.org/imagingbook/

相關(guān)文章

  • Python實(shí)現(xiàn)將json文件中向量寫入Excel的方法

    Python實(shí)現(xiàn)將json文件中向量寫入Excel的方法

    這篇文章主要介紹了Python實(shí)現(xiàn)將json文件中向量寫入Excel的方法,涉及Python讀取、遍歷json格式數(shù)據(jù)及Excel文件寫入相關(guān)操作技巧,需要的朋友可以參考下
    2018-03-03
  • Python 使用類寫裝飾器的小技巧

    Python 使用類寫裝飾器的小技巧

    裝飾器是一個(gè)返回函數(shù)的函數(shù)。寫一個(gè)裝飾器,除了最常見的在函數(shù)中定義函數(shù)以外,Python還允許使用類來定義一個(gè)裝飾器。這篇文章給大家分享Python 使用類寫裝飾器的小技巧,一起看看吧
    2018-09-09
  • 關(guān)于python的xlwings與VBA間的互相調(diào)用

    關(guān)于python的xlwings與VBA間的互相調(diào)用

    這篇文章主要介紹了關(guān)于python的xlwings與VBA間的互相調(diào)用,VBA是一種通用應(yīng)用軟件腳本語言,Excel包含和許多功能強(qiáng)大的數(shù)據(jù)分析對象,例如工作表、圖表、數(shù)據(jù)透視表以及大量的數(shù)學(xué)、財(cái)務(wù)、工程和通用業(yè)務(wù)函數(shù),配合VBA可以運(yùn)用這些對象開發(fā)出自動程序
    2023-07-07
  • python多核處理器算力浪費(fèi)問題解決

    python多核處理器算力浪費(fèi)問題解決

    這篇文章主要為大家介紹了python多核處理器算力浪費(fèi)現(xiàn)象的處理,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • pytorch  網(wǎng)絡(luò)參數(shù) weight bias 初始化詳解

    pytorch 網(wǎng)絡(luò)參數(shù) weight bias 初始化詳解

    這篇文章主要介紹了pytorch 網(wǎng)絡(luò)參數(shù) weight bias 初始化詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • Django學(xué)習(xí)之文件上傳與下載

    Django學(xué)習(xí)之文件上傳與下載

    這篇文章主要為大家詳細(xì)介紹了Django學(xué)習(xí)之文件上傳與下載,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • Python項(xiàng)目實(shí)戰(zhàn)之使用Django框架實(shí)現(xiàn)支付寶付款功能

    Python項(xiàng)目實(shí)戰(zhàn)之使用Django框架實(shí)現(xiàn)支付寶付款功能

    這篇文章主要介紹了Python項(xiàng)目實(shí)戰(zhàn)之使用Django框架實(shí)現(xiàn)支付寶付款功能,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-02-02
  • 詳解Python中的條件判斷語句

    詳解Python中的條件判斷語句

    這篇文章主要介紹了Python中的條件判斷語句,是Python入門中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-05-05
  • Python List cmp()知識點(diǎn)總結(jié)

    Python List cmp()知識點(diǎn)總結(jié)

    在本篇內(nèi)容里小編給大家整理了關(guān)于Python List cmp()用法相關(guān)知識點(diǎn),有需要的朋友們跟著學(xué)習(xí)下。
    2019-02-02
  • Python rabbitMQ如何實(shí)現(xiàn)生產(chǎn)消費(fèi)者模式

    Python rabbitMQ如何實(shí)現(xiàn)生產(chǎn)消費(fèi)者模式

    這篇文章主要介紹了Python rabbitMQ如何實(shí)現(xiàn)生產(chǎn)消費(fèi)者模式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08

最新評論