Photoshop如何将类型格式转换为光栅化图层?

2024-03-29 08:39:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我最近一直在考虑字体。我发现按键转换成以特定字体显示的字符的整个过程非常有趣。更让我着迷的是,每个角色都不是一个图像,而是一组打开(或关闭)的像素。你知道吗

在Photoshop中,当我创建一个文本层时,我假设它和字处理器中的任何其他文本层一样。有一个符号附着在一个字符上并显示出来。所以从技术上讲,它仍然不是一个“图像”,可以说,它可以被视为文字处理器中的文本。但是,在光栅化文本层时,将使用使用的字体创建文本图像。有人能告诉我Photoshop是怎么做到的吗?我假设应该有一个带有字符图形的查找表,Photoshop可以访问该表来光栅化图层。你知道吗

我想创建一个程序,在其中生成我正在按下的角色的图像(用C或Python之类的语言)。有办法吗?你知道吗


Tags: 图像文本图层图形角色过程光栅字体
1条回答
网友
1楼 · 发布于 2024-03-29 08:39:51

Adobe目前有公开访问的the Photoshop file format文档。我需要从PSD文件(大约一年前,但实际上是古老的CS2版本的Photoshop)中提取信息,这样我就可以警告您,这不是轻松阅读,而且有些部分(至少在CS2文档中)是不完整或不准确的。通常,即使您有文件格式的文档,您也需要执行一些反向工程来处理该文件格式。你知道吗

即便如此,关于photoshop6.0中的TySh块的信息,请参见here(不确定它是否仍然是Photoshop的当前文本形式-“type”)。你知道吗

不管怎样,是的-文本作为一系列字符代码存储在内存和文件中。字体基本上是矢量图形的集合,因此文本可以转换为矢量路径。这可以通过自己处理字体文件,在操作系统调用时使用(当然有一个用于Windows的,但我不记得它的名字了,它现在困扰着我,所以我以后可能会找到它),或者使用一个库来实现。你知道吗

一旦你有了矢量形式,基本上就是贝塞尔路径,就像其他矢量艺术品一样,可以用同样的方式渲染。你知道吗

或者直接从文本到像素,您只需要求Windows为您绘制文本—如果您不想绘制到屏幕上,可以将文本绘制到内存DC(设备上下文)。你知道吗

FreeType是一个用于处理字体的开源库。它绝对可以渲染成位图。我没有检查,但它可能也可以将文本转换为向量路径-毕竟它需要做的一部分渲染像素无论如何。你知道吗

Cairo是另一个明显的用于字体处理的库,但我自己从来没有直接使用过它。你知道吗

wxWidgets是另一个显而易见的库,它使用了类似于Windows的内存DC方案,尽管我不记得确切的类名/方法名。不过,将文本转换为向量可能超出了wxWidgets的范围。你知道吗

相关问题 更多 >