用纯Python编写PNG

以防万一任何人都有相同的问题,这是我的第一次尝试 在纯Python中实现PNG规格的子集. 我将其许可 您按照GNU GPL的条款. http://trac.browserhots.org/browser...b/image/png.py 它仅使用" 模块系统,Zlib和struct. 这些都包含在基地中 Python的分布. 您不需要GD或Imlib. 我进行了一些测试,我的实施过程8兆的 RGB输入在0.6秒内. 启用了ADAM7交织,它需要10 时间更长. 我真的很感谢任何改进的反馈和建议. 干杯, 约翰

# 回答1

>您真的应该包括Alpha频道. 没有那个,PNG是 我现在添加了简单的透明度(将一种颜色标记为透明 带有trns块). 如果有人想要完整的alpha频道支持,请询问 请给我一个补丁. 我想避免复制所有 功能,所以也许我们应该引入一个参数以在3之间切换 和每个像素的4个字节. 干杯, 约翰
# 回答2

在2006年6月99日星期五07:43:21 -0400,约翰·R·罗乔(Johann C. Rocholl) 写道: 这是您的代码,因此您可以许可它. 但是,如果您想征求补丁, 恕我直言,更多的Pythonic许可证更有可能 证明富有成果. 艾伦·艾萨克
# 回答3

em sex,2006-06-09*S 12:30 -0400,Alan Isaac Escreveu: " Pythonic许可"? 对我来说是新的. 我可以弄清楚什么 "类似Python的许可证"是,但我对" Pythonic许可证"一无所知. - - 费利佩.
# 回答4

> em sex,2006-06-09 - 12:30 -0400,艾伦·艾萨克·埃斯·埃斯·埃斯雷夫(Alan Isaac Escreveu): " Felipe Almeida Lessa" 在消息中写道 新闻:Ma *********************************************************************************************************************** " Pythonic许可"? 对我来说是新的. 我可以弄清楚什么是" Python型许可",但我对" Pythonic许可证"一无所知. http://www.panikon.com/phurba/alteng/i.html hth, 艾伦·艾萨克
# 回答5

Alan Isaac Schrieb: 您建议什么许可证? 经过[1]和[2]的阅读后, [3],我发现学术免费许可证(2.1版)和 Apache许可证(版本2.0)被认为有用 到Python软件基金会. 到目前为止,我尚未将这些许可证用于我自己的代码,并且 稍作阅读后,AFL对我来说似乎还可以. 我也许会 将LGPL [4]视为替代方案,因为它的限制性较小 比GPL. 想法或链接,有人吗? 干杯, 约翰 [1] http://www.python.org/moin/pythonsof...tionlicensefaq [2] http://www.python.org/psf/records/bo...es/2004-11-09/ [3] http://www.python.org/psf/contrib/ [4] http://www.gnu.org/licenses/lgpl.html(_@_ _) " Johann C. Rocholl" 在消息中写道 新闻:11 ****************************@f6g2000cwb.googlegro ups.com ... 我建议您选择最能实现的许可证 您的代码长期目标. 据我了解他们, 当我unde时 定位您的应用程序和软件开发, 这意味着类似MIT许可证:http://www.opensource.org/licenses/mit-license.php 我相信麻省理工学院许可证最大化 小规模应用程序将收到有用的补丁 当您积极合并补丁时. 由于许多原因,您可能会得出其他结论... 干杯, 艾伦·艾萨克
# 回答6

麻省理工学院的许可简单简单,谢谢您的提示. 我现在决定许可我的项目(包括纯Python PNG 库)根据Apache许可证2.0的限制性少于 GPL在转染色方面. Apache许可证看起来现代, 对我有利. 我的项目在Apache上运行,所以有一些 还有上下文. 另外,如果我曾经,这种更改将简化事物 想为Python软件基金会贡献一些代码. 干杯, 约翰
# 回答7

>以防万一任何人都有相同的问题,这是我的第一次尝试 更新:该模块已使用自己的设置. 干杯, 约翰
# 回答8

约翰·罗乔尔(Johann C. Rocholl)写道: 但这也与GPL不兼容:http://www.fsf.org/licensing/license...ATIBLELICENSS 显然,这是您关于如何许可自己的代码的决定,但是 我建议您无视" Pythonic许可"言论 这意味着:Python的原始许可被认为不够 某些律师的许可证(这就是某些人所说的 原始Python许可证); 不建议随后的许可证 申请其他任何作品(例如Python的各种许可证 多年来的代码); 尽管有些人倡导允许许可 聚会,有许多成功的GPL'D和LGPL'D Python 项目(这意味着以这种方式许可的项目并不少于 社区成员). 此外,任何许可体操 PSF承担的确实涉及各种额外的翻筋斗 与GPL兼容,这意味着即使是偏爱允许许可证的人 积极考虑"许可互操作性". 如果您确信允许的许可最适合您的代码,请 请考虑一些您了解的副作用. 如果是 额外的专利赠款或许可终止条款(FSF 不认为是一件坏事,只是与 当前的GPL/LGPL)是您想要的,然后是Apache 许可可能是您所追求的; 否则,您应该选择 从此列表中也许是少一些巴洛克式,更好地理解的东西:http://www.fsf.org/licensing/license/license...ATIBLELICENSS 是的,查找有关非FSF许可证的最佳场所之一是 实际上,FSF本身,破坏了某些人喜欢的各种神话 提出. 保罗
# 回答9

保罗·博迪(Paul Boddie)写道: 但这也与GPL:http://www.fsf.org/lice不相容 NSING/许可... Atiblelicenses显然是您关于如何许可您自己的代码的决定,但我建议您无视" Pythonic许可"修辞,无论这意味着:Python的原始许可被认为不足以获得许可证 某些律师(这就是某些人所说的原始Python许可证); 随后的许可不建议申请其他任何作品(例如多年来的Python代码的各种许可证); 尽管某些方倡导允许的许可,但仍有许多成功的GPL'D和LGPL'D Python项目(这意味着以这种方式许可的项目并不是社区中的较小成员). 此外,PSF进行的任何许可体操都涉及各种额外的翻筋斗,以保持与GPL兼容,这意味着即使是赞成允许许可证的人,也以"许可互操作性"为基础. 如果您确信宽容的许可证最适合您的代码,请考虑一些您了解的副作用. 如果额外的专利赠款或许可终止条款(FSF不认为这是一件坏事,只是与当前的GPL/LGPL不相容的东西)是您想要的,那么Apache许可证可能是您所追求的; 否则,您应该从此列表中选择较少的巴洛克式,更好地理解的东西:http://www.fsf.org/licensing/license/license...ATIBLELICENSS是的,可以找到有关非FSF许可证的最佳地点之一是 实际上,FSF本身,破坏了某些人喜欢提出的各种神话. 还请记住,发布相同的代码是完全有可能的 根据几个不同的许可. 例如,这可能发生 对Python的贡献. PSF不在乎您如何许可 其他任何人,只有您将其许可在免费学者下向PSF许可 Apache许可证的许可证或V2. 然后我们将其重新许可到Python 用户(在Python许可下,自然而然). 如果撰稿人希望将GPL下的相同代码许可给 其他人对此没有问题. 问候 史蒂夫 - - 史蒂夫·霍顿+44 150 684 7255 +1 800 494 3119 Holden Web LLC/Ltd http://www.holdenweb.com 爱我,爱我的博客http://holdenweb.blogspot.com 最近的漫步http://del.icio.us/steve.holden
# 回答10

>>我现在决定许可我的项目(包括纯Python PNG 谢谢你启发我. 我的印象是错误的 Apache许可与GPL兼容,也许是因为它是 OSI批准,这意味着我现在了解的一件不同的事情. 如果您确信宽容的许可证最适合您的代码,请考虑一些您了解的副作用. 如果额外的专利赠款或许可终止条款(FSF不认为这是一件坏事,只是与当前的GPL/LGPL不相容的东西)是您想要的,那么Apache许可证可能是您所追求的; OT herwise,您应该从此列表中选择一些较少的巴洛克式,更好地理解的东西:http://www.fsf.org/licensing/license/license...atiblelicenses 我确实相信我的代码对更多人有用 允许的许可证,但显然也是在GPL兼容的情况下 执照. 因此,改变我的许可也许是个好主意 再次软件. 目前,我正在考虑以下选项: -LGPL - 修改后的BSD许可证 -X11许可证(又名MIT许可证) 我感谢BSD和MIT许可的简单性,除了 名称. " BSD许可证"可以与原始BSD许可混淆, 尽管FSF的"麻省理工学院许可"是误导性的,但由于麻省理工学院 在软件中使用了许多许可证."但是,这些缺点也许只是 在FSF页面上提到,以吸引更多人使用GPL或LGPL. :-) 我不想发动有关GPL的好处的圣战,但我 想要更多有关许可选择的投入. 也许我会 将我项目的更大部分放在GPL下,只有一些 LGPL下方的独立库零件(例如PNG编码器). 如果我想为Python软件贡献一些代码 基金会,我仍然可以根据Apache许可证将其许可给他们 正确的? 但是其他人对我的代码部分的贡献呢? 在LGPL下获得许可的软件? 欢呼,约翰
# 回答11

约翰·罗乔尔(Johann C. Rocholl)写道: 我有一位律师告诉我,麻省理工学院的许可证更好地宣布您 非责任比BSD. Ianal,您的律师可能会有所不同. - - - 斯科特·戴维·丹尼尔斯(Scott David Daniels) " Johann C. Rocholl" 写道: 您可能需要作者许可的所有捐款 在Expat许可证下,您可以将其全部带入 将来无需寻找该作者,而仍然 保留其版权. - - \"我在杂货店里.我看到一个标志说'宠物| `\供应'. 所以我做了. 然后我去外面看到一个迹象表明| _o__)说"紧凑型汽车". 本·芬尼
# 回答12

这里的构造怎么样? #!/usr/bin/env Python #png.py-纯Python中的PNG编码器 #版权所有(C)2006 Johann C. Rocholl # #此文件可在以下内容之一下获得许可: #1. GNU较少的通用公共许可证(LGPL),版本2.1或更新 #2. GNU通用公共许可证(GPL),版本2或更新 #3. Apache许可证,版本2.0或更新 #4.以下许可证(又称MIT许可证) # #------------------------------------------------------------------------------------------------------------ ------ #版权所有(C)2006 Johann C. Rocholl # #特此免费授予任何人的权限 #获取此软件的副本和关联的文档文件 #("软件"),无限制地处理软件, #包括不限于使用权的权利 y,修改,合并, #发布,分发,转销和/或出售软件的副本, #并允许提供该软件的人这样做, #受以下条件的约束: # #上述版权通知和此许可通知应为 #包含在软件的所有副本或大量部分中. # #该软件是"原样"提供的,没有任何形式的保修, #明示或暗示,包括但不限于 #适销性,适合特定目的的健身性和 #非侵权. 在任何情况下,作者或版权持有人都不会 #无论是在 #合同,侵权或其他方面的行动,是由,出于,之外或从中产生的 #与软件或使用或其他交易的连接 # 软件. #--------------------------------------------------------------------------------------------------- ------- # #除非至少一个 #以上四个许可证.
# 回答13

" Johann C. Rocholl" 写道: 无意义. 根据Expat许可证(您正在调用的内容)许可该许可 "麻省理工学院许可证",但我们已经讨论了歧义 术语)允许您命名的所有其他许可证中授予的所有权利, 加上其他任何东西. 因此,如果您也很高兴 人们将其在外籍许可证下获得. 另一方面,如果您 想要比外籍许可的条款更加限制,您 需要选择其他许可证. 简化. 请不要尝试写另一组许可证 没有专家法律援助的条款. 您已经选择了外国人 可以接受的许可; 使用它,您将授予所有其余的 甚至没有提及它. - - \" [在互联网上,权力和控制将转移到那些| `\实际上是在贡献有用的东西,而不仅仅是| _o__)吃午餐." - 道格拉斯·亚当斯(Douglas Adams)| 本·芬尼
# 回答14

Ben Finney Schrieb: 对不起,我的顽固无知,谢谢你的病人 解释. 我想我终于明白了:我会把大部分浏览器项目放在 再次在GNU GPL下,独立图书馆的部分如png.py 根据外籍许可证. 干杯, 约翰
# 回答15

" Johann C. Rocholl" 写道: 没问题; 如果可以减少许可扩散,那是值得的 花一些时间这样做. 我想我终于明白了:我将再次将我的浏览器项目的大部分放在GNU GPL下,以及在Expat许可下的独立图书馆零件,例如PNG.PY. 听起来很可行. 这具有整体工作的效果 可以根据GNU GPL重新分配(因为Expat许可证允许 这),可以在下面独立重新分布图书馆的零件 几乎任何许可证. - - \"当我们从他人的发明中享有巨大的优势时,我们| `\应该很高兴为他人服务 我们的任何发明." - | _o__)本杰明·富兰克林| 本·芬尼

标签: python

添加新评论