zoukankan      html  css  js  c++  java
  • Pillow的安装和使用

    需要把一段文字转换成图片,我找到了PIL(Python Imaging Library)库,专门干这个用的。还有一个Pillow是“friendly PIL fork”,于是我选择了后者。

    安装过程稍有曲折,主要是要先把它的依赖库安装就绪,再装Pillow,过程如下:

    ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"  # 安装brew
    sudo easy_install pip #安装pip
    brew install libzip   # 安装libzip
    ln -s /usr/local/include/freetype2 /usr/local/include/freetype   
    ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/Tk.framework/Versions/8.5/Headers/X11 /usr/local/include/X11
    
    sudo pip install pillow  # 安装pillow

    刚开始我在没有安装libzip和freetype之前,直接安装了pillow,会报出如下错误:

    /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/tk.h:78:11: fatal error: 
          'X11/Xlib.h' file not found
    #       include <X11/Xlib.h>
                    ^
    1 error generated.
    error: command 'cc' failed with exit status 1
        font = PIL.ImageFont.truetype('Helvetical', 16)
      File "/Library/Python/2.7/site-packages/PIL/ImageFont.py", line 218, in truetype
        return FreeTypeFont(filename, size, index, encoding)
      File "/Library/Python/2.7/site-packages/PIL/ImageFont.py", line 134, in __init__
        self.font = core.getfont(file, size, index, encoding)
      File "/Library/Python/2.7/site-packages/PIL/ImageFont.py", line 34, in __getattr__
        raise ImportError("The _imagingft C module is not installed")
    ImportError: The _imagingft C module is not installed
    IOError: encoder zip not available

    将前面的依赖库安装就绪之后,这些问题就都解决了。

    写段代码如下:

    import    loggingimport    PIL.Image
    import    PIL.ImageDraw
    import    PIL.ImageFont
            
    class    Main(object):
        def text2png(self, text, fontName, fontSize, pngPath):
            font = PIL.ImageFont.truetype(fontName, fontSize)
            width, height = font.getsize(text)
            logging.debug('(width, height) = (%d, %d)' % (width, height))
            image = PIL.Image.new('RGBA', (width, height), (0, 0, 0, 0))  # 设置透明背景
            draw = PIL.ImageDraw.Draw(image)
            draw.text((0, 0), text, font = font, fill = '#000000')
            image.save(pngPath)
    
        def    Main(self):
            text = u' ^_^ '
            fontName = '/Library/Fonts/华文黑体.ttf'
            pngPath = 'test.png'
            self.text2png(text, fontName, 37, pngPath)

    即可将字符' ^_^ '转为图片,如下

  • 相关阅读:
    [bzoj]2131: 免费的馅饼
    [bzoj]1098: [POI2007]办公楼biu
    [luogu]P2051 [AHOI2009]中国象棋
    [luogu]P2825 [HEOI2016/TJOI2016]游戏
    MSSQL To MongoDB Tool (FREE)
    虚拟机和Linux安装详解
    Maven
    springmvc的文件上传和下载,框架集成
    json详解以及fastjson使用
    JSP——语法,指令,表达式语言(EL),JSTL标签
  • 原文地址:https://www.cnblogs.com/palance/p/4809798.html
Copyright © 2011-2022 走看看