LInux6登录界面扭曲,pil写扭曲中文示例

中文,扭曲字体,示例,

windows,PIL 1.1.6, python2.5

要在linux上还不知要装几个模块,

前面的是写中文,后面的是在这基础上扭曲图形,只是利用Image的load(这是1.1.6+版本才支持的),折腾一个cos的函数,有点效果,换成sin差不多。如果还能用另外的函数,不知能折腾出啥样图案来。

#-*-  encoding: utf-8  -*-

import Image

import ImageFont, ImageDraw

chinacha = '世界'

im = Image.new('RGBA',(400,300))

draw = ImageDraw.Draw(im)

font = ImageFont.truetype('msyh.ttf',30)

draw.text((10,25),'world',font=font,fill='rgb(110,0,255)')

draw.text((100,25),chinacha.decode('gb2312'),font=font,fill='rgb(110,0,255)')

# 隶书

font1 = ImageFont.truetype('STLITI.TTF',50)

draw.text((100,100),chinacha.decode('gb2312'),font=font1,fill='green')

#transfomrdata = (1.1,-0.5,0,-0.5,1.3,0,)

#im = im.transform((400,300),Image.AFFINE,transfomrdata)

im.save('e:\piltest2.png')

import math,random

im = Image.open('e:\piltest2.png','r')

newim = Image.new('RGBA',(400,300))

pix = im.load()

newpix = newim.load()

w, h = im.size

#offx = random.randint(5,10) # x方向位移

#offy = 2  #振幅

#angley = random.random() #   recommend: 0 ~ 1,  摆动频率

#测试下来,修改angley效果最佳,可在0~1之间,或者<50, >50之类出来的效果都还是有的,

#具体里面的函数关系折腾不出来了,琢磨着和字体大小也有关系

offx = 10

offy = 2

angley = 10

for x in range(0,w):

for y in range(0,h):

x1 = int(x -offx + offy * math.cos(angley * y))

if x1 < w and x1 > 0:  newpix[x1, y] = pix[x, y]

newim.save('e:\piltest5.png')

阅读(1353) | 评论(0) | 转发(0) |

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值