首页 > 编程语言 >python pillow保存中文字体居中

python pillow保存中文字体居中

时间:2023-01-03 17:23:13浏览次数:41  
标签:int font python draw height width 中文字体 txt pillow


import os
import cv2
import numpy as np
from PIL import Image, ImageDraw, ImageFont


txtList = ["保存单帧", "保存多帧"]
height = 300
width = 1068
# word = word.decode('utf-8')  # 这里吧文本就是编下码, 有时候从数据库中拿出来的数据写入的时候会乱码
# 使用ImageFout.truetype("字体", "文字大小(像素px)")
SimHei = "/usr/share/fonts/truetype/wqy/wqy-zenhei.ttc"    # 一个字体文件
font = ImageFont.truetype(SimHei, size=200)  # 设置字体和大小
for txt in txtList:
    fusion = Image.new('RGB', (width, height ), color=(50,50,50))    # 背景图像

    # 计算出要写入的文字占用的像素
    w, h = font.getsize(txt)    # 字体宽高
    print("(%d, %d)"%( w,h))
    print("sub (%d, %d)"%( width-w,height-h)) 
    print("(%d, %d)"%(int((width-w)/2), int((height-h)/2))) 
    # 创建一个可以在给定图像上绘图的对象
    draw = ImageDraw.Draw(fusion)
    # draw.text(((width-w)/2, (height-h)/2), txt, fill="white", font=font)
    draw.text((int((width-w)/2), int((height-h)/4)), txt, fill="white", font=font)

    # ImageDraw.Draw.text(xy, text, fill=None, font=None, anchor=None, spacing=0, align=”left”)    
    # draw.text((5, 5), txt, font = font, fill ="white", align ="right")

    bbox = draw.textbbox((int((width-w)/2), int((height-h)/2)), txt, font=font)
    # draw.rectangle(bbox, outline="red")
    print(bbox)

    # 保存画布
    fusion.save(txt+".png" ,"PNG")

    # fusion.show()
    # break



    # break




标签:int,font,python,draw,height,width,中文字体,txt,pillow
From: https://www.cnblogs.com/xiaohuidi/p/17022871.html

相关文章

  • Python读写文件之换行符
    系统的换行符和路径分隔符 os模块可以获取当前系统的换行符和路径分隔符 windows操作系统>>>os.linesep                        '\r\n......
  • Python Tkinter教程
    1控件Tkinter模块提供了2种Toplevel控件和许多基本控件,目前已包括15种,每种控件都有很多属性  简单示例:1fromtkinterimport*#导入tkinter模块【必要步骤】2......
  • python 中os和sys模块常用方法
    OS常用方法os.remove()删除文件os.rename()重命名文件os.walk()生成目录树下的所以文件名os.chdir()改变目录os.mkdir/makedirs创建目录/多层目录os.rmdir/removed......
  • python脚本性能分析
    1.python脚本性能分析cProfile思路使用cProfile模块生成脚本执行的统计信息文件使用pstats格式化统计信息,并根据需要做排序分析处理使用snakeviz图形化页面显示2.cP......
  • opencv-python同时调用两个摄像头
    importcv2importnumpyasnpcapture=cv2.VideoCapture(0)capture_usb=cv2.VideoCapture(2)#打开自带的摄像头ifcapture.isOpened()andcapture_usb.isOpene......
  • python + appium 常用公共方法封装
    appium程序下载安装见之前的帖子:https://www.cnblogs.com/gancuimian/p/16536322.htmlappium环境搭建见之前的帖子:https://www.cnblogs.com/gancuimian/p/16557576.html......
  • Python 每天一个知识点(预计为期100天)第一天
    列表的基本操作:一,列表的定义:1.列表之内的元素不要求同一类型,所以极为方便2.列表的本质上是容器,最常见的是包含字符串,数字,自定义的对象3.根据不同编译器,lis......
  • 【Ubuntu】Ubuntu安装python虚拟环境
    1.准备环境Ubuntu20.04LTS1.1安装virtulenv和virtulenvwrappersudopip3installvirtulenvsudopip3installvirtulenvwrapper1.2配置虚拟环境存放目录先在$HOM......
  • python技能树——删除字符串的空格
    python技能树——删除字符串的空格来看一道题:描述牛牛、牛妹和牛可乐都是Nowcoder的用户,某天Nowcoder的管理员由于某种错误的操作导致他们的用户名的左右两边增加了一......
  • python技能树——字符串大小写运用
    python技能树——字符串大小及运用来看一道题:描述牛牛、牛妹和牛可乐都是Nowcoder的用户,某天Nowcoder的管理员希望将他们的用户名以某种格式进行显示,现在给定他们三......