This mailing-list thread表示Mac OS X SDK中有一个QuartzFilter类,可以用来操作Quartz过滤器。但是......据我所知,这个课程没有记录,我在谷歌找不到更多关于它的信息。
快速使用nm
表明QuartzFilter.framework
具有以下公开方法:
000000000001577a t +[QuartzFilter converterProperties:allObjects:images:imageBPC:imageRenderingIntent:]
0000000000015364 t +[QuartzFilter hostMatchingFilter:imageBPC:imageRenderingIntent:]
00000000000152a5 t +[QuartzFilter imageConverter:bpc:renderingIntent:]
0000000000015465 t +[QuartzFilter quartzFilterWithOutputIntents:]
00000000000155df t +[QuartzFilter quartzFilterWithProperties:]
0000000000015522 t +[QuartzFilter quartzFilterWithURL:]
但是,所有这些都创建了过滤器对象,你如何将它们应用于某些东西?
答案 0 :(得分:2)
你是对的,这些类的记录非常糟糕。实际上,即使在标题中也几乎没有任何文档。
您不需要使用nm
来查看API。使用文件>在Xcode中快速打开并在对话框中输入QuartzFilter
。您可以打开QuartzFilter.h
和QuartzFilterManager.h
。
看起来您可以使用它来获取所有可用过滤器的数组:
[[QuartzFilterManager filterManager] filtersInDomains:nil];
获得过滤器后,您可以将其应用于CGContext
-applyToContext:
。
您可以在ColorSync实用程序中创建过滤器,但是如何以编程方式创建过滤器是一个谜。我想如果您使用其URL实例化一个现有过滤器,那么您可以使用QuartzFilter
的各种方法进行调查。
答案 1 :(得分:0)
QuartzFilters是documented here,但非常糟糕。如上所述,您可以在使用PDFKit(PDF文档)编写PDF时将它们应用于CGContext或字典。