颜色数据库#
自从引入涉及颜色的方法(例如 Page.draw_circle())以来,可能需要访问预定义的颜色。
这个出色的GUI包 wxPython 具有超过540种预定义RGB颜色的数据库,这些颜色有较容易记忆的名称。其中不仅包括“绿色”或“蓝色”等标准名称,还有“绿松石色”、“天蓝色”和100种(不仅仅是50种……)的“灰色”色调等。
我们擅自复制了这个数据库(一个元组列表),并将其修改为PyMuPDF,使其颜色可用作PDF兼容的浮点三元组:对于wxPython的 (“WHITE”, 255, 255, 255) 我们返回 (1, 1, 1),可以直接用于 color 和 fill 参数。我们还接受任何大小写混合的“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 RGB 或 print by HSV。它们会创建包含所有这些颜色的PDF(已经存在于同一目录中)。它们的唯一区别是排序顺序:一个采用RGB值,另一个则采用色相-饱和度-值作为排序标准。 这是这些文件的屏幕截图。