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

好可爱>%<!

题目来源:https://github.com/Yixiaohan/show-me-the-code,感谢@史江歌以及其他人,让我找到了一个系统的学习python模块的好地方。

看到这个题目的第一印象是——额,难不成让我找qq的API,然后在手机APP的壁纸上提示QQ消息?好吧,我承认自己想复杂了,所以第二个想法就来了。因为博主最近学习比较杂乱无章,所以学习了tkinter以及opencv模块,后来发现大多数人使用PIL模块处理图像,好吧,由于上次图像指纹的识别用到了PIL模块以及Pillow模块,那么就使用三种方法把图片处理一下吧,代码如下:

 # coding=utf-8
"""
使用tkinter
"""
__author__ = 'wing1995'
from tkinter import * def tk_image():
root = Tk() w = Canvas(root, width=500, height=500)
w.pack() photo = PhotoImage(file="C:/Users/wing1995/Desktop/classic.gif")
w.create_image(0, 0, anchor=NW, image=photo)
w.create_text(480, 60, text="", fill="red", font=('Times', 40)) mainloop() if __name__ == "__main__":
tk_image()

使用tkinter模块的好处是,方便,但是由于没有学到如何将制作的窗口中的画布保存为图片的形式,所以只能直接把窗口截图给大家看啦:

第二张方法代码:

 # coding=utf-8
__author__ = 'wing1995'
"""
使用OpenCV
"""
import cv2 img = cv2.imread('classic.jpg') font = cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(img, '', (450, 100), font, 4, (0, 0, 255), 4) cv2.imshow('OpenCV', img) cv2.waitKey(0)
cv2.destroyAllWindows()

同样简单明白,I love python!结果如下:

估计是我的网速问题,弄得几张图都碎掉了,以后有空研究一下这个问题,或许是像素的丢失,导致图片的不完整,也就破图了,不管怎样还是觉得第一张图片好看点,ok,上第三类方法代码:

 # coding=utf-8
__author__ = 'wing1995'
"""
使用PIL
"""
from PIL import Image, ImageDraw, ImageFont sourceFilename = "classic.jpg"
avatar = Image.open(sourceFilename) # 打开图片文件
drawAvatar = ImageDraw.Draw(avatar) # 创建画刷,用来将数字写在图片上 myFont = ImageFont.truetype("C:/Windows/Fonts/simsunb.ttf", 60) # 使用特定字体写字 drawAvatar.text([450, 60], text="", fill=(255, 0, 0), font=myFont) avatar.show()
avatar.save('classic_pil.jpg')

这一次,学会保存图片,话说opencv中保存图片也很简单的不,只不过脑袋一时短路,忘记了,上图片:

不得不说,虽然PIL模块没怎么学习,但是上手仍然很简单,而且很详细,比如字体的设置,估计其他模块也有这样的功能,只是自己没发现而已,ok了,那么第一个练习题就这样了,有些代码明显需要改进,比如标志“9”的坐标应该放在同一个地方,便于比较之类的,大小也应该相同,代码能够函数化就好了,毕竟python处处是对象。明天继续第二个,以及coursera的语法温习,晚上玩一玩微博数据API吧。

额,话说,我扔下机房几个电脑的软件按照不管,自己自娱自乐,是不是有点偷懒?好饿,去上课了。

python模块学习第 0000 题的更多相关文章

  1. 【转】Python模块学习 - fnmatch & glob

    [转]Python模块学习 - fnmatch & glob 介绍 fnmatch 和 glob 模块都是用来做字符串匹配文件名的标准库. fnmatch模块 大部分情况下使用字符串匹配查找特 ...

  2. 【目录】Python模块学习系列

    目录:Python模块学习笔记 1.Python模块学习 - Paramiko  - 主机管理 2.Python模块学习 - Fileinput - 读取文件 3.Python模块学习 - Confi ...

  3. Python模块学习filecmp文件比较

    Python模块学习filecmp文件比较 filecmp模块用于比较文件及文件夹的内容,它是一个轻量级的工具,使用非常简单.python标准库还提供了difflib模块用于比较文件的内容.关于dif ...

  4. Python模块学习:logging 日志记录

    原文出处: DarkBull    许多应用程序中都会有日志模块,用于记录系统在运行过程中的一些关键信息,以便于对系统的运行状况进行跟踪.在.NET平台中,有非常著名的第三方开源日志组件log4net ...

  5. 解惑Python模块学习,该如何着手操作...

    Python模块 晚上和朋友聊天,说到公司要求精兵计划,全员都要有编程能力.然后C.Java.Python-对于零基础入门的,当然是选择Python的人较多了.可朋友说他只是看了简单的语法,可pyth ...

  6. Python模块学习

    6. Modules If you quit from the Python interpreter and enter it again, the definitions you have made ...

  7. Python模块学习系列

    python模块-time python模块-datetime python模块-OS模块详解

  8. Python模块学习遇到的问题

    Python使用import导入模块时报ValueError: source code string cannot contain null bytes的解决方案 Python使用import导入模块 ...

  9. Python 模块学习:re模块

    今天学习了Python中有关正则表达式的知识.关于正则表达式的语法,不作过多解释,网上有许多学习的资料.这里主要介绍Python中常用的正则表达式处理函数. 方法/属性 作用 match() 决定 R ...

随机推荐

  1. Windows10 下 github ssh 访问出现 Permission denied(publickey)错误的解决方法

    Windows10 下 github ssh 访问出现 Permission denied(publickey)错误的解决方法. 错误信息: git clone git@github.com:ediw ...

  2. Devexpress Winform初学笔记

    作为一个软件开发人员来说,得有自己的博客,可以用来ZB,哈哈!玩笑话..... 写博客并不仅仅是用来ZB的,他可以用来记录你在技术道路上探索遇到的坎,当然也有提高逼格的次然因素啦!小弟刚入博客园不久, ...

  3. WPF TriggerAction弹出子窗体 TargetedTrigger、TargetedTriggerAction用法

    namespace TriggerAction { public class OpenWindowAction : TriggerAction<DependencyObject> { pu ...

  4. Modular Arithmetic ( Arithmetic and Algebra) CGAL 4.13 -User Manual

    1 Introduction Modular arithmetic is a fundamental tool in modern algebra systems. In conjunction wi ...

  5. 当Shell遇上了NodeJS

    此文已由作者尧飘海授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 摘要 在企业级系统维护和互联网运维中,Shell脚本的编写与维护常必不可少, 但是Shell脚本的编写与调试 ...

  6. Ecliplse转IDEA的学习思路

    很多用户都是先学习了 Eclipse.MyEclipse 再转到 IntelliJ IDEA 的,这里需要先说明的是,在学习 IntelliJ IDEA 过程中,你暂且要放下 Eclipse 下的开发 ...

  7. css3 animation动画使用

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. Elasticsearch学习(5) Elasticsearch+logstash +filebeat+log4j的日志系统

    最近需要使用Elasticsearch做一个日志系统,本文只介绍log4j内容同步到Elasticsearch,至于日志的查询和分类,会在后面介绍. 一.配置并打开Elasticsearch 这个操作 ...

  9. 那些令人敬佩的刚学OI的大佬

    我是萌新刚学OI,请问LCT怎么写常树最小啊 我是女生刚学OI,请问树链剖分哪里写挂了? 萌新求教,这棵SBT哪里有问题啊啊啊…… 刚学OI,请问可持久化非确定状态AC自动分块维护线段平衡仙人掌优化最 ...

  10. [AS3.0] 解决Number类型计算不精确问题

    看下面代码运行结果: trace(256.08+123.1); //379.17999999999995 trace(256.08-123.11); //132.96999999999997 trac ...