颜色数据库#

自从引入涉及颜色的方法(例如 Page.draw_circle())以来,可能会需要访问预定义颜色。

出色的 GUI 包 wxPython 有一个包含 540 多种预定义 RGB 颜色的数据库,这些颜色被赋予了或多或少易于记忆的名称。其中包括不仅有“绿色”或“蓝色”等标准名称,还有“青绿色”、“天蓝色”,以及 100 种(不仅仅是 50 种……)“灰色”的阴影等。

我们冒昧地将这个数据库(一个元组列表)修改后复制到 PyMuPDF 中,并将其颜色作为兼容 PDF 的浮点三元组提供:对于 wxPython 的 (“WHITE”, 255, 255, 255),我们返回 (1, 1, 1),这可以直接用于 colorfill 参数。我们也接受任何大小写的“wHiTe”来查找颜色。

函数 getColor()#

由于颜色数据库可能不经常需要,因此似乎可以接受额外添加一个导入语句来访问它

>>> # "getColor" is the only method you really need
>>> from pymupdf.utils import getColor
>>> getColor("aliceblue")
(0.9411764705882353, 0.9725490196078431, 1.0)
>>> #
>>> # to get a list of all existing names
>>> from pymupdf.utils import getColorList
>>> cl = getColorList()
>>> cl
['ALICEBLUE', 'ANTIQUEWHITE', 'ANTIQUEWHITE1', 'ANTIQUEWHITE2', 'ANTIQUEWHITE3',
'ANTIQUEWHITE4', 'AQUAMARINE', 'AQUAMARINE1'] ...
>>> #
>>> # to see the full integer color coding
>>> from pymupdf.utils import getColorInfoList
>>> il = getColorInfoList()
>>> il
[('ALICEBLUE', 240, 248, 255), ('ANTIQUEWHITE', 250, 235, 215),
('ANTIQUEWHITE1', 255, 239, 219), ('ANTIQUEWHITE2', 238, 223, 204),
('ANTIQUEWHITE3', 205, 192, 176), ('ANTIQUEWHITE4', 139, 131, 120),
('AQUAMARINE', 127, 255, 212), ('AQUAMARINE1', 127, 255, 212)] ...

打印颜色数据库#

如果您想实际查看许多可用颜色是什么样子,请使用示例目录中的按 RGB 打印脚本或按 HSV 打印脚本。它们会创建包含所有这些颜色的 PDF 文件(已存在于同一目录中)。它们唯一的区别是排序顺序:一个使用 RGB 值作为排序标准,另一个使用色相-饱和度值作为排序标准。这是这些文件外观的屏幕截图。

_images/img-colordb.png

本软件按“原样”提供,不作任何明示或暗示的保证。本软件根据许可证分发,除非该许可证条款明确授权,否则不得复制、修改或分发。有关许可信息,请参阅 artifex.com 或联系 Artifex Software Inc., 39 Mesa Street, Suite 108A, San Francisco CA 94129, United States 获取更多信息。