后來(lái)用 PS + 動(dòng)作,倒是能搞出來(lái),不過(guò)也不容易,正好那天沒(méi)搞完,于是拿回自己家做,但我的電腦上又沒(méi)有 PS, 所以就用 python 實(shí)現(xiàn)了。
效果圖
這里用的圖片全是 240X240 的,按文件名的首字母作為序號(hào),PIL 雖然可以計(jì)算文字的尺寸,但類似 D 這樣的字符依然不能處于圓圈的正中,所以還對(duì)個(gè)別字符做了偏移設(shè)置,本來(lái)想用 aggdraw 畫(huà)圓圈的,能平滑 一些,不過(guò)安裝了好幾次,都以失敗告終,最終放棄。
#!/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) # 在右下角畫(huà)白底黑框圓圈 draw.ellipse((215, 215, 235, 235), outline='black', fill='white') # 將字母序號(hào)寫(xiě)入到圓圈內(nèi) font = ImageFont.truetype('fonts/Times New Roman.ttf', 20) # 計(jì)算文字居中的位置 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)
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com