python3.6环境下如何安装freetype库和基本使用方法

FreeType库是一个完全免费(开源)的、高质量的且可移植的字体引擎,它提供统一的接口来访问多种字体格式文件,包括TrueType, OpenType, Type1, CID, CFF, Windows FON/FNT, X11 PCF等。在做图像展示的时候,可以写入中文文字,效果还是很好。

在之前安装库时基本都是直接切换到python3.6环境下直接pip install XXX,在安装freetype直接pip install freetype不可以了,查了半天又是编译又是官网下载的,太麻烦,不推荐。

(1)正确的安装方法:
注意:一定要加上 -py

pip install freetype-py

(2)常用调用方法

已经封装好了一个文件,可直接保存后调用。

import freetype
import copy

class put_chinese_text(object):
  def __init__(self, ttf):
    self._face = freetype.Face(ttf)

  def draw_text(self, image, pos, text, text_size, text_color):
    '''
    draw chinese(or not) text with ttf
    :param image:   image(numpy.ndarray) to draw text
    :param pos:    where to draw text
    :param text:   the context, for chinese should be unicode type
    :param text_size: text size
    :param text_color:text color
    :return:     image
    '''
    self._face.set_char_size(text_size * 64)
    metrics = self._face.size
    ascender = metrics.ascender / 64.0

    # descender = metrics.descender/64.0
    # height = metrics.height/64.0
    # linegap = height - ascender + descender
    ypos = int(ascender)

    text = text
    img = self.draw_string(image, pos[0], pos[1] + ypos, text, text_color)
    return img

  def draw_string(self, img, x_pos, y_pos, text, color):
    '''
    draw string
    :param x_pos: text x-postion on img
    :param y_pos: text y-postion on img
    :param text: text (unicode)
    :param color: text color
    :return:   image
    '''
    prev_char = 0
    pen = freetype.Vector()
    pen.x = x_pos << 6 # div 64
    pen.y = y_pos << 6

    hscale = 1.0
    matrix = freetype.Matrix(int(hscale) * 0x10000, int(0.2 * 0x10000), \
                 int(0.0 * 0x10000), int(1.1 * 0x10000))
    cur_pen = freetype.Vector()
    pen_translate = freetype.Vector()

    image = copy.deepcopy(img)
    for cur_char in text:
      self._face.set_transform(matrix, pen_translate)

      self._face.load_char(cur_char)
      kerning = self._face.get_kerning(prev_char, cur_char)
      pen.x += kerning.x
      slot = self._face.glyph
      bitmap = slot.bitmap

      cur_pen.x = pen.x
      cur_pen.y = pen.y - slot.bitmap_top * 64
      self.draw_ft_bitmap(image, bitmap, cur_pen, color)

      pen.x += slot.advance.x
      prev_char = cur_char

    return image

  def draw_ft_bitmap(self, img, bitmap, pen, color):
    '''
    draw each char
    :param bitmap: bitmap
    :param pen:  pen
    :param color: pen color e.g.(0,0,255) - red
    :return:    image
    '''
    x_pos = pen.x >> 6
    y_pos = pen.y >> 6
    cols = bitmap.width
    rows = bitmap.rows

    glyph_pixels = bitmap.buffer

    for row in range(rows):
      for col in range(cols):
        if glyph_pixels[row * cols + col] != 0:
          try:
            img[y_pos + row][x_pos + col][0] = color[0]
            img[y_pos + row][x_pos + col][1] = color[1]
            img[y_pos + row][x_pos + col][2] = color[2]
          except:
            continue

if __name__ == '__main__':
  # just for test
  import cv2

  line = '毛不易'
  img = cv2.imread('./aa.jpg')

  color_ = (0, 255, 0) # Green
  pos = (3, 3)
  text_size = 24
  ft = put_chinese_text('yahei.ttf')
  image = ft.draw_text(img, pos, line, text_size, color_)

  cv2.imshow('ss', image)
  cv2.waitKey(0)
(0)

相关推荐

  • python3.6环境下如何安装freetype库和基本使用方法

    FreeType库是一个完全免费(开源)的.高质量的且可移植的字体引擎,它提供统一的接口来访问多种字体格式文件,包括TrueType, OpenType, Type1, CID, CFF, Windows FON/FNT, X11 PCF等.在做图像展示的时候,可以写入中文文字,效果还是很好. 在之前安装库时基本都是直接切换到python3.6环境下直接pip install XXX,在安装freetype直接pip install freetype不可以了,查了半天又是编译又是官网下载的,太麻

  • python3.6环境下安装freetype库和基本使用方法(推荐)

    FreeType库是一个完全免费(开源)的.高质量的且可移植的字体引擎,它提供统一的接口来访问多种字体格式文件,包括TrueType, OpenType, Type1, CID, CFF, Windows FON/FNT, X11 PCF等.在做图像展示的时候,可以写入中文文字,效果还是很好. 在之前安装库时基本都是直接切换到python3.6环境下直接pip install XXX,在安装freetype直接pip install freetype不可以了,查了半天又是编译又是官网下载的,太麻

  • python3.7环境下安装Anaconda的教程图解

    下载Anaconda安装包 官网下载或是在清华大学镜像站下载,我安装的是下面这个版本: 安装过程 配置环境 将anaconda的scripts文件夹路径添加到环境变量中. 如果命令行输入输出如图所示则安装成功: 为了避免可能发生的错误, 我们在命令行输入conda upgrade --all 先把所有工具包进行升级.(也可以不安装升级) 打开pycharm,如图点击add local 点击第三个选项,system interpreter,选择python.exe路径,点击ok,就可以了. 总结

  • Windows下pycharm安装第三方库失败(通用解决方案)

    学习python都知道,python的第三方库是很多,如果都在本机 pip 的话,在新建项目的时候都会加载不需要用到的库,影响运行速度.而且现在都是用pycharm,因为它强大好用方便.但是pycharm安装第三库也会失败的. Python有一个 virtualenv 的库,是管理虚拟运行环境,可以独立每一个运行环境,这样就可以分离不必要的库而影响运行了. pycharm强大在于创建一个Project的时候可以选择virtualenv, 选择图中可以直接创建一个独立的 Virtualenv 运行

  • windows环境下tensorflow安装过程详解

    一.前言 本次安装tensorflow是基于Python的,安装Python的过程不做说明(既然决定按,Python肯定要先了解啊):本次教程是windows下Anaconda安装Tensorflow的过程(cpu版,显卡不支持gpu版的...) 二.安装环境 (tensorflow支持的系统是64位的,windows和linux,mac都需要64位) windows7(其实和windows版本没什么关系,我的是windows7,安装时参照的有windows10的讲解) Python3.5.2(

  • Centos7下PHP安装gd库的实例讲解

    Centos7下安装php, 或php的gd库支持,都是很简单的. 一切通过yum搞定. yum install php-gd 以上命令就搞定php-gd的支持,快快看看phpinfo是否支持了? 可是,如果需要采用不同版本的php时,那就是相当的麻烦,经过摸索,笔者找到了一个较为简单的方式. 由于需要与系统原生版本共存多个php版本,那么你要求的版本必须采用源码编译.(如果有其他办法,请记得回复告知一下我) 那么,编译php-gd的支持,网上大多都是通过编译freetype, libpng,

  • Python3.5 win10环境下导入kera/tensorflow报错的解决方法

    本文实例讲述了Python3.5 win10环境下导入keras/tensorflow报错的解决方法.分享给大家供大家参考,具体如下: 我在win10 Python3.5.2安装keras,然后导入时报错如下: Python 3.5.2 |Continuum Analytics, Inc.| (default, Jul 5 2016, 11:41:13) [MSC v.1900 64 bit (AMD64)] on win32 Type "help", "copyright&

  • python3.7环境下sanic-ext未生效踩坑解析

    目录 坑: 原因: 结论: 回过头看: 后记 坑: 在python3.7环境下,通过官方文档安装sanic即扩展插件,但是 sanic-ext包不起作用,具体的表现为:无法打开路由/docs. 这里的坑在于,服务启动时,sanic不会报错.因此很难定位出问题在sanic-ext. 原因: 寻找sanic-ext不起作用的原因: 首先在虚拟环境中执行import sanic_ext 结果报错,提示缺少importlib.metadata 查询当前环境下importlib.metadata的版本,发

  • Linux 环境下编译安装MySQL5.6的笔记记录

    一.首先搭建好Linux环境,我这边使用的是redhat enterprise 6.5,并且建议磁盘划分逻辑卷,以便后期的扩容工作. 二.环境搭建好了之后,我们就要去准备MySQL的安装文件,到现在为止mysql仍然是免费开源,可以直接在官网下载,大家可以自行访问官网去下载, 网址是:https://www.mysql.com/downloads/ ,当然下载前大家需要先去注册一个Oracle账户,然后选择社区免费版进行下载. 三.安装依赖包以及cmake编译工具 yum install -y

  • CentOS环境下单独安装apachebench的方法

    本文实例讲述了CentOS环境下单独安装apachebench的方法.分享给大家供大家参考,具体如下: 这两天在测试php性能优化方法. 为了做压力测试可观察效果,就选择了ApacheBench来作为压力测试工具.其实就是大家常说的ab. 但是这个工具是安装apache web server的时候自带的,现在我服务器上都是跑nginx.也不想为了用这个工具就再装个apache.所以在用下面方法单独安装ab工具,这里记录下步骤. 首先安装ab运行需要的软件包apr-util yum install

随机推荐