因為工作需要生成各種大小的圖片,所以寫了個小腳本,順便支持了下圖畫文字內容。
具體代碼如下:
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')
另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
當前名稱:Python批量生成特定尺寸圖片及圖畫任意文字的實例-創新互聯
當前路徑:http://m.kartarina.com/article14/dodege.html
成都網站建設公司_創新互聯,為您提供App開發、ChatGPT、云服務器、品牌網站建設、網站設計公司、營銷型網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯