颜色数据库#

自从引入涉及颜色的方法(例如 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)] ...

打印颜色数据库#

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

_images/img-colordb.png

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