所以,坏消息是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)

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

  1. python 时间序列预测_使用Python进行动手时间序列预测

    python 时间序列预测 Time series analysis is the endeavor of extracting meaningful summary and statistical ...

  2. python 概率分布模型_使用python的概率模型进行公司估值

    python 概率分布模型 Note from Towards Data Science's editors: While we allow independent authors to publis ...

  3. python渲染光线_Python光线追踪

    我正在用纯Python构建一个简单的Python光线追踪器(仅仅是为了它),但我遇到了障碍. 我的场景的设置目前是这样的: 相机位于沿Y轴指向的0, -10, 0. 半径为1的球体位于0, 0, 0. ...

  4. python库名_在python存储库名称和包名称中使用连字符/破折号 - python

    我试图使我的git仓库pip可安装.为此,我正在重组仓库以遵循正确的约定.通过查看其他存储库,我的理解是,我应该将所有源代码放在与存储库名称相同的软件包中.例如.如果我的存储库称为myrepo,则源代 ...

  5. python selenium 下拉列表_从下拉列表中选择python selenium选项

    我试图使用下面的代码使用selenium(python)从网页上的下拉列表中选择一个选项.在from selenium import webdriver from selenium.webdriver ...

  6. python 语料标注_在python中怎么标记文本?

    要运行下面的python程序,必须在系统中安装(NLTK)自然语言工具包. NLTK模块是一个庞大的工具包,旨在帮助您使用整个自然语言处理(NLP)方法. 要安装NLTK,请在终端中运行以下命令.su ...

  7. python pipeline框架_介绍Python的Django框架中的静态资源管理器django-pipeline

    django-pipeline 是一个 Django 下非常方便的静态资源管理 app,尤其是 1.2 版本之后,利用 django-staticfiles 的collectstatic 命令,在开发 ...

  8. python中立方表示_在Python中表示一个对象的方法

    在 Python 中一切都是对象.如果要在 Python 中表示一个对象,除了定义 class 外还有哪些方式呢?我们今天就来盘点一下. 0x00 dict 字典或映射存储 KV 键值对,它对查找.插 ...

  9. python临床数据_从临床试验中获取数据

    我正在开发一个小Python函数来从clinicalTrials.gov中获取数据.从每个研究记录中,我想从中找出研究的目标条件.例如,对于this研究记录,我需要以下内容:conditions = ...

最新文章

  1. sql列转行函数oracle,SQL列转行
  2. 银行软件开发实习生_如何找到学生的软件开发人员实习生
  3. 一个简单的例子教会您使用javap
  4. 车联网服务non-RESTful架构改造实践
  5. 链接选项 rpath 的原理和应用
  6. 【note】软件体系结构(6-10章)
  7. poj 2965 The Pilots Brothers#39; refrigerator
  8. java 双击触发事件,用RxJava2的方式实现点击事件
  9. 怎样删除Word文档的强制性回车、断行
  10. Python 实现窗函数
  11. 5G和北斗,交通行业新基建的正确打开方式
  12. openwrt带宽测速
  13. win10下安装ubuntu双系统
  14. 如何利用软文营销将好品牌故事?
  15. 火影忍者ol手游服务器注册上限怎么办,火影忍者ol手游服务器人数爆满怎么进_服务器爆满解决方法...
  16. 计算机组装需要注意什么东西,组装一台计算机需要注意那些问题?
  17. PDF文档在线翻译怎么操作
  18. 手把手教你安装 Fedora
  19. 【JavaWeb】jsp页面中表单重复提交的三种情况
  20. 动态流星雨制作代码分享(可直接复制)

热门文章

  1. Android scheme链接打开本地应用
  2. 《ClickHouse企业级应用:入门、进阶与实战》1 全面了解ClickHouse
  3. 水瓶座名人既水瓶座概论
  4. Python实现ATM
  5. 双离合档把上按钮作用_双离合怎么换挡图解,7速双离合档位示意图
  6. 当今十大备份应用软件
  7. python中的英文歌_Python 爬网易音乐云歌曲,MV
  8. 定义bool型变量出现 ”identifier “bool” is undefined”错误
  9. L05 Laravel 教程 - 电商实战
  10. Rabbitmq安装以及入门