python生成验证码,文字转换为图片 - 小众知识

python生成验证码,文字转换为图片

2013年01月27日 14:18:05 苏内容
  标签: python/图片
阅读:7328

在58或者赶集等一些网站上经常看到手机号是图片格式,或者一些网站的验证码。这些都是动态生成的,今天我们来看一下如何用python把文字生成图片。其实今天主要借助pygame的图像渲染模块,这样比较简单,顺便帮大家复习下pygame这个游戏框架。好啦,直接上代码吧。

环境:python2.7,装有python3的同学也可以测试一下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#coding: UTF-8
#载入必要的模块
import os
import pygame
from pygame.locals import *
#pygame初始化
pygame.init()
text = u"PythonTab中文网"
#设置字体和字号
font = pygame.font.SysFont('Microsoft YaHei', 64)
#渲染图片,设置背景颜色和字体样式,前面的颜色是字体颜色
ftext = font.render(text, True, (65, 83, 130),(255, 255, 255))
#保存图片
pygame.image.save(ftext, "D:/pythontab.jpg")#图片保存地址

注意:如果要生成中文其中的字体设置中,要设置支持中文的字体。不然会生成乱码

 

python3给图片添加水印

 
 
#!/usr/local/bin/python3
#coding=gbk

import os, io, sys, re, time, json, random
from PIL import Image, ImageEnhance, ImageFilter

def watermark(img_source, img_water, img_new, offset_x, offset_y):
    try:
        im = Image.open(img_source)
        wm = Image.open(img_water)
        layer = Image.new('RGBA', im.size, (0,0,0,0))
        layer.paste(wm, (im.size[0] - offset_x, im.size[1] - offset_y))
        newIm = Image.composite(layer, im, layer)
        newIm.save(img_new)

    except Exception as e:
        print(">>>>>>>>>>> WaterMark EXCEPTION:  " + str(e))
        return False
    else:
        return True

def main():
    watermark("original.jpg", "watermark.png", "afterwater.jpg", 250, 50)

if __name__ == '__main__':
    main()
 

 

原图:

 

水印:

 

添加水印后:

扩展阅读