因?yàn)楣ぷ餍枰筛鞣N大小的圖片,所以寫了個(gè)小腳本,順便支持了下圖畫文字內(nèi)容。
具體代碼如下:
from PIL import Image, ImageDraw, ImageFont''' Auth: Xiaowu Chen Note: Please install [pillow] library before run this script.''' def draw_image(new_img, text, show_image=False): text = str(text) draw = ImageDraw.Draw(new_img) img_size = new_img.size draw.line((0, 0) + img_size, fill=128) draw.line((0, img_size[1], img_size[0], 0), fill=128) font_size = 40 fnt = ImageFont.truetype('arial.ttf', font_size) fnt_size = fnt.getsize(text) while fnt_size[0] > img_size[0] or fnt_size[0] > img_size[0]: font_size -= 5 fnt = ImageFont.truetype('arial.ttf', font_size) fnt_size = fnt.getsize(text) x = (img_size[0] - fnt_size[0]) / 2 y = (img_size[1] - fnt_size[1]) / 2 draw.text((x, y), text, font=fnt, fill=(255, 0, 0)) if show_image: new_img.show() del draw def new_image(width, height, text='default', color=(100, 100, 100, 255), show_image=False): new_img = Image.new('RGBA', (int(width), int(height)), color) draw_image(new_img, text, show_image) new_img.save(r'%s_%s_%s.png' % (width, height, text)) del new_img def new_image_with_file(fn): with open(fn, encoding='utf-8') as f: for l in f: l = l.strip() if l: ls = l.split(',') if '#' == l[0] or len(ls) < 2: continue new_image(*ls) if '__main__' == __name__: new_image(400, 300, 'hello world any size', show_image=True) # new_image_with_file('image_data.txt') 如果你需要批量的話,批量數(shù)據(jù)文件的格式如下:
#width,height,text200,200,hello300,255,world
執(zhí)行后的效果如下:

以上這篇Python批量生成特定尺寸圖片及圖畫任意文字的實(shí)例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持武林站長站。
新聞熱點(diǎn)
疑難解答
圖片精選