早些年,微信朋友圈有段时间非常流行这个头像+1的套路,简直逼死强迫症。

将你的 QQ 头像(或者微博头像)右上角加上红色的数字,类似于微信未读信息数量那种提示效果。 类似于图中效果

涉及知识:

Python Imaging Library (PIL)图像库,Image, ImageDraw, ImageFont模块

话不多说先上代码:

  1. from PIL import Image, ImageDraw, ImageFont
  2.  
  3. def add_num(img):
  4. draw = ImageDraw.Draw(img)
  5. myfont = ImageFont.truetype("C:\\WINDOWS\\Fonts\\SIMYOU.TTF", 200)
  6. width, height = img.size
  7. draw.ellipse((width-200,0,width,200),fill="red",outline ="red")
  8. draw.text((width-150, 15), '', font=myfont, fill="white")
  9.  
  10. img.save('result.jpg','jpeg')
  11.  
  12. image = Image.open('yoyo.jpg')
  13. add_num(image)

其中ImageFont.truetype(file,size) ? Font instance

含义:加载一个TrueType或者OpenType字体文件,并且创建一个字体对象。这个函数从指定的文件加载了一个字体对象,并且为指定大小的字体创建了字体对象。

在windows系统中,如果指定的文件不存在,加载器会顺便看看windows的字体目录下是否存在。

绘制效果:

过程中可能会出现的问题:

首先是PIL库的安装。我用的是pycharm,Python版本2.7。第一次装也是装了几次才成功,主要原因是,通过pycharm直接安装,里面装的版本只有1.1.6的,安装之后,运行不了,会提示你找不到合适的Python版本。

然后我就去网上查了下,知道了PIL库主要2.5  2.6用的比较多,2.7需要装最新版的库。

The following downloads are currently available:

PIL 1.1.7

Additional downloads may be found here.

PIL 1.1.6

然后下载了2.7可以用的1.1.7,双击安装,然后再Pycharm - File - Setting - Project Interpreter - Available Packages 然后面板左下角的Manage Repositories中添加,PIL安装的路径,我的路径是(C:\Python27\Lib\site-packages\PIL)。

退回到settings界面,可以看到PIL库已经安装好了。

在程序运行的过程中又出现了错误提示PIL库中:The _imagingft C module is not installed错误。

提示有个C模块咩有安装,明明是在官网下的,怎么会出现这样的情况呢,又查了一番,原来是PIL库中,有一个模块那没有编译,导致提示C模块找不到,附上一个编译过的1.1.7PIL库。(http://pan.baidu.com/s/1pLCTb1h

安装之前,记得要将原来的版本卸载掉。

【Python图像】给你的头像+1的更多相关文章

  1. python Django注册页面显示头像

    python Django注册页面显示头像(views) def register(request): ''' 注册 :param request: :return: ''' if request.m ...

  2. 【Tool】Augmentor和imgaug——python图像数据增强库

    Augmentor和imgaug--python图像数据增强库 Tags: ComputerVision Python 介绍两个图像增强库:Augmentor和imgaug,Augmentor使用比较 ...

  3. python图像、视频转字符画

    python图像转字符画需要用到matplotlib.pyplot库,视频转字符画需要用到opencv库,这里的代码基于python 3.5 图像转字符画需要先将图像转为灰度图,转灰度图的公式是 gr ...

  4. [Python] 图像简单处理(PIL or Pillow)

    前几天弄了下django的图片上传,上传之后还需要做些简单的处理,python中PIL模块就是专门用来做这个事情的. 于是照葫芦画瓢做了几个常用图片操作,在这里记录下,以便备用. 这里有个字体文件,大 ...

  5. python批量下载微信好友头像,微信头像批量下载

    #!/usr/bin/python #coding=utf8 # 自行下载微信模块 itchat 小和QQ496631085 import itchat,os itchat.auto_login() ...

  6. Python图像全屏显示

    需要在嵌入式设备上全屏显示图像,使用pil显示图像时,只能通过系统的图像浏览器显示.所以使用Python自带的tkinter import Tkinter as tk   这句在Python3中已经改 ...

  7. 【Python图像特征的音乐序列生成】使用Python生成简单的MIDI文件

    这个全新的Python音乐创作系列,将会不定期更新.写作这个系列的初衷,是为了做一个项目<基于图像特征的音乐序列生成模型>,实时地提取照片特征,进行神经网络处理,生成一段音乐. 千里之行, ...

  8. Python之微信-微信好友头像合成

    仔细看下图,你的头像就藏在里面哦!!! 有没有犯密集恐惧症?这并不震撼,如果你有 5000 位好友的话,做出来的图看着会更刺激些. 看完了图,你可能想知道这个图咋做出来的,不会是我闲着无聊把把好友头像 ...

  9. python 图像的离散傅立叶变换

    图像(MxN)的二维离散傅立叶变换可以将图像由空间域变换到频域中去,空间域中用x,y来表示空间坐标,频域由u,v来表示频率,二维离散傅立叶变换的公式如下: 在python中,numpy库的fft模块有 ...

随机推荐

  1. [LeetCode] Triangle 三角形

    Given a triangle, find the minimum path sum from top to bottom. Each step you may move to adjacent n ...

  2. Linux 中 SVN 重启关闭

    a.启动SVN svnserve -d -r /A/B/svn/ 其中 -d 表示守护进程, -r 表示在后台执行 /A/B/svn/ 为svn的安装目录 b.关闭SVN 这里采取linux杀死进程的 ...

  3. Codeforces Round #382(div 2)

    A.= = B. 题意:给出n个数和n1和n2,从n个数中分别选出n1,n2个数来,得到n1个数和n2个数的平均值,求这两个平均值的最大和 分析:排个序从后面抽,注意先从末尾抽个数小的,再抽个数大的 ...

  4. 20170103简单解析MySQL查询优化器工作原理

    转自博客http://www.cnblogs.com/hellohell/p/5718238.html 感谢楼主的贡献 查询优化器的任务是发现执行SQL查询的最佳方案.大多数查询优化器,包括MySQL ...

  5. 函数:MySQL中字符串匹配函数LOCATE和POSITION使用方法

    1. 用法一 LOCATE(substr,str) POSITION(substr IN str) 函数返回子串substr在字符串str中第一次出现的位置.如果子串substr在str中不存在,返回 ...

  6. Android基础总结(五)

    HttpClient 发送get请求 创建一个客户端对象 HttpClient client = new DefaultHttpClient(); 创建一个get请求对象 HttpGet hg = n ...

  7. wordpress默认index主页选择Your Projects提示无法找到项目解决办法?

    wordpress_4.5.3默认index主页选择Your Projects下部署的项目发现报错无法找到目标解决办法: 1.其实细心的小伙伴已经发现问题出在哪里,跳转后链接地址发生了错误没有加loc ...

  8. 【BZOJ-1656】The Grove 树木 BFS + 射线法

    1656: [Usaco2006 Jan] The Grove 树木 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 186  Solved: 118[Su ...

  9. fsr

    Front-end server render 前端在后端的渲染 1.采用express框架创建项目 express -e fsr cd fsr npm install 2.模板选用artTempla ...

  10. jquery缓存使用jquery.cookies.2.2.0.min.js

    $.cookies.set(key, obj, { hoursToLive: 2}); key标识的键 , obj存入的值可以缓存json对象, hoursToLive 缓存小时数 $.cookies ...