日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

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

系統 1916 0

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

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

效果圖

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

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

            
#!/usr/bin/env python
#-*- coding: utf-8 -*-
import os, sys, fnmatch
import Image, ImageDraw, ImageFont

def 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 
            
              
                '
    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)


              
            
          


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 诸城市| 潞西市| 阿拉善左旗| 徐州市| 邯郸县| 房山区| 丰顺县| 龙井市| 灵山县| 连云港市| 湾仔区| 平远县| 石景山区| 江安县| 买车| 延边| 信丰县| 盐边县| 腾冲县| 鄂托克前旗| 洱源县| 芮城县| 太和县| 江北区| 井研县| 延长县| 弥勒县| 常熟市| 塔河县| 乃东县| 吴忠市| 宕昌县| 沙湾县| 泸水县| 塔河县| 黄龙县| 漳浦县| 南木林县| 榆社县| 鹤山市| 定兴县|