国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python中用PIL庫批量給圖片加上序號的教程

2020-02-23 01:06:57
字體:
來源:轉載
供稿:網友

女友讓我給她論文的圖片上加上字母序號,本來覺得是個很簡單的事情,但那個白底黑字的圓圈序號卻難住了我, 試了幾個常用的軟件,都不行。

后來用 PS + 動作,倒是能搞出來,不過也不容易,正好那天沒搞完,于是拿回自己家做,但我的電腦上又沒有 PS, 所以就用 python 實現了。

效果圖

201556101123056.png (500×250)

這里用的圖片全是 240X240 的,按文件名的首字母作為序號,PIL 雖然可以計算文字的尺寸,但類似 D 這樣的字符依然不能處于圓圈的正中,所以還對個別字符做了偏移設置,本來想用 aggdraw 畫圓圈的,能平滑 一些,不過安裝了好幾次,都以失敗告終,最終放棄。

#!/usr/bin/env python#-*- coding: utf-8 -*-import os, sys, fnmatchimport Image, ImageDraw, ImageFontdef process_picture(filename):  seq = os.path.split(filename)[-1][0].upper()  img = Image.open(os.path.join(input_dir, filename))  draw = ImageDraw.Draw(img)  # 在右下角畫白底黑框圓圈  draw.ellipse((215, 215, 235, 235), outline='black', fill='white')  # 將字母序號寫入到圓圈內  font = ImageFont.truetype('fonts/Times New Roman.ttf', 20)  # 計算文字居中的位置  text_size = draw.textsize(seq, font)  x = (20 / 2) - (text_size[0] / 2)  y = (20 / 2) - (text_size[1] / 2)  # 字母偏移量  offsets = {'A': 1, 'B': 1, 'E': 1, 'D': 2}  offset = offsets.get(seq, 0)  draw.text((215 + x + offset, 215 + y), seq, font=font, fill='black')  # save image  img.save(os.path.join(output_dir, filename), 'JPEG')if __name__ == '__main__':  if len(sys.argv) < 3:    print 'Usage: python drawseq.py <input_dir> <output_dir>'    sys.exit(1)  input_dir, output_dir = sys.argv[1:3]   os.path.exists(output_dir) or os.makedirs(output_dir)  for filename in os.listdir(input_dir):    if fnmatch.fnmatch(filename.lower(), '*.jpg'):      process_picture(filename)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 洪江市| 连云港市| 双城市| 罗甸县| 修文县| 治县。| 梅州市| 山阳县| 梅河口市| 禹城市| 乌鲁木齐市| 南皮县| 贡嘎县| 平谷区| 安龙县| 随州市| 苏州市| 大足县| 隆回县| 牙克石市| 哈巴河县| 鄂托克前旗| 普定县| 西藏| 嵩明县| 金昌市| 府谷县| 平度市| 郴州市| 多伦县| 西城区| 保定市| 托克托县| 达拉特旗| 麟游县| 电白县| 股票| 松原市| 资兴市| 韶山市| 章丘市|