zoukankan      html  css  js  c++  java
  • python练习册 每天一个小程序 第0000题

    PIL库学习链接:http://blog.csdn.net/column/details/pythonpil.html?&page=1

    1
    #-*-coding:utf-8-*- 2 __author__ = 'Deen' 3 ''' 4 题目说明: 5 将你的 QQ 头像(或者微博头像)右上角加上红色的数字,类似于微信未读信息数量那种提示效果。 类似于图中效果 6 ''' 7 from PIL import Image 8 from PIL import ImageChops 9 from PIL import ImageDraw 10 from PIL import ImageFont 11 12 # im = Image.open('source\0000.jpg') 13 # print im.getbands() 14 # print im.mode 15 # print im.size 16 # print im.size[0] 17 # print im.size[1] 18 19 ''' 20 PIL使用笛卡尔像素坐标系统,坐标(0,0)位于左上角。注意:坐标值表示像素的角;位于坐标(0,0)处的像素的中心实际上位于(0.5,0.5)。 21 22 坐标经常用于二元组(x,y)。长方形则表示为四元组,前面是左上角坐标。例如,一个覆盖800x600的像素图像的长方形表示为(0,0,800,600)。 23 ''' 24 25 # info 返回一个对象 26 # print im.info 27 28 ''' 29 ImageChops模块 30 31 ImageChops模块包含一些算术图形操作,叫做channel operations(“chops”)。这些操作可用于诸多目的,比如图像特效,图像组合,算法绘图等等。通道操作只用于8位图像(比如“L”模式和“RGB”模式)。 32 ''' 33 34 ''' 35 ImageDraw模块 36 37 ImageDraw模块为image对象提供了基本的图形处理功能。例如,它可以创建新图像,注释或润饰已存在图像,为web应用实时产生各种图形。 38 39 ImageDraw模块的使用如下: 40 41 >>>from PIL import Image, ImageDraw 42 43 >>> im = Image.open('D:\Code\Python\test\img\1.jpg') 44 45 >>>draw = ImageDraw.Draw(im) 46 47 >>>draw.line((0,0) + im.size, fill = 128) 48 49 >>>draw.line((0, im.size[1], im.size[0], 0), fill=128) 50 51 >>>im.show() 52 53 >>> deldraw 54 55 >>>im.show() 56 ''' 57 58 59 # im2 = ImageChops.duplicate(im) 60 # print im2.size 61 # draw = ImageDraw.Draw(im2) 62 ''' 63 draw.line((141, 15)+(141, 53), fill=(255, 0, 0)) 64 draw.line((141, 15)+(123, 33), fill=(255, 0, 0)) 65 draw.line((123, 33)+(150, 33), fill=(255, 0, 0), width=5) 66 ''' 67 ''' 68 ft = ImageFont.truetype("C:/windows/fonts/Arial.ttf", 20) 69 draw.text((30,30),u"4",font=ft,fill='red') 70 im2.show() 71 ''' 72 73 def add_num(img): 74 draw = ImageDraw.Draw(img) 75 ft = ImageFont.truetype("C:/windows/fonts/Arial.ttf", 20) 76 draw.text((img.size[0]-40, 0), u'99+',font=ft, fill='red') 77 img.save('result.jpg', 'jpeg') 78 79 return 0 80 81 if __name__ == '__main__': 82 image= Image.open('source/0000.jpg') 83 add_num(image)
  • 相关阅读:
    How To Build CyanogenMod Android for smartphone
    CentOS安装Code::Blocks
    How to Dual boot Multiple ROMs on Your Android SmartPhone (Upto Five Roms)?
    Audacious——Linux音乐播放器
    How to Dual Boot Multiple ROMs on Your Android Phone
    Everything You Need to Know About Rooting Your Android Phone
    How to Flash a ROM to Your Android Phone
    什么是NANDroid,如何加载NANDroid备份?
    Have you considered compiled a batman-adv.ko for android?
    BATMAN—Better Approach To Mobile Adhoc Networking (B.A.T.M.A.N.)
  • 原文地址:https://www.cnblogs.com/deen-/p/7127375.html
Copyright © 2011-2022 走看看