本组件基于Pillow==5.1.0开发,支持中文英文,支持自定图片,支持自定字体。
from PicGenerator import SharingPicGenerator as Generator
pic_foo = Generator(background_fp, w, h)
pic_foo.add_paste_task(pasted_pic_fp, region_box)
参数:
- pasted_pic_fp:文件路径或BytesIO
- region_box:包含四个整数的tuple.图片在背景图片上的四个边距背景图片左边(竖线)或上边(横线)的像素距离,按顺序为左、上、右、下的位置。eg:(210, 210, 330, 330)
示例:
tmp_foo.add_paste_task('sharing_pic_generator/common/default_photo.png', (210, 210, 330, 330))
说明:图片在粘贴之前会进行resize,会导致图片比例发生变化,建议裁剪后调用。
pic_foo.add_text_task(text_args, *font_args)
text_args示例:
text_args = {'text': u'测试文字', 'xy': (0, 75), 'align': 'center'}
参数:
text_args: dict,text为unicode类型,algin为对齐模式,支持left,center,right模式。
xy:包含两个整数的tuple。
- 对于algin = left:x,y文本框左上角距离左边和上边的距离
- 对于algin = center:x无所谓,y为文本框上边离背景图片上沿的像素距离
- 对于algin = right:x为文本框右边距离背景图片左边的像素距离,y为文本框上边离背景图片上沿的像素距离
index:字体font_family中的index,详情请参考具体的字体。
font_args:可根据Pillow的要求任意添加,必须包含字体的路径,文本大小(前两个参数)
添加文字任务接口示例:
pic_foo.add_text_task(text_args, 'common/assets/PingFang.ttc', 28)
rs = pic_foo.generate()
返回值为BytesIO类型
可将参数统一写到一个.py或.json文件中,可提高效率和准确性。参考本目录下的pic_config.py