python渲染光线_在python中为图像添加光照效果

所以,坏消息是PIL无法做到这一点。我特别提出了几个想法,不幸的是,这些想法都不是直截了当的。

GIMP(GNU Image Manipulation Program)确实有一个很棒的“ligthning effects”插件,

GIMP可以用Python编写脚本,并且可以通过参数调用插件。

缺点是你的插件必须在GIMP的过程中输入。 (所以你要么将GIMP作为批次进行一次运行,要么设计一个服务器python插件,通过闪电效果插件处理你的图像)

我熟悉的其他选项还涉及进程外渲染将使用POVRay:渲染图像作为1x1x0.1平面板的颜料图,然后你可以放置“真正的”光源。

另一种方法是自己使用OpenGL - 我稍微浏览了一下,也许这个“光泽”项目可以为你提供一种方式,让你可以使用光源而不需要进入低级别的opengl:

http://www.tuxradar.com/gloss

或者 - 用一个黑色和白色矩形的矩形网格“伪造”它,你可以将它与你的颜色乘法结合起来。

这是允许yiou单独使用PIL的唯一方法,但是“网格”线太明显了,我认为尝试用模糊来平滑不会削减它:

def fake_light(image, tilesize=50):

WIDTH, HEIGHT = i.size

for x in xrange(0, WIDTH, tilesize):

for y in xrange(0, HEIGHT, tilesize):

br = int(255 * (1 - x / float(WIDTH) * y /float(HEIGHT)))

tile = Image.new("RGBA", (tilesize, tilesize), (255,255,255,128))

image.paste((br,br,br), (x, y, x + tilesize, y + tilesize), mask=tile)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值