Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 有没有办法改变PyCairo中的字母间距?(或在不影响高度的情况下更改文本宽度)_Python_Cairo_Pycairo - Fatal编程技术网

Python 有没有办法改变PyCairo中的字母间距?(或在不影响高度的情况下更改文本宽度)

Python 有没有办法改变PyCairo中的字母间距?(或在不影响高度的情况下更改文本宽度),python,cairo,pycairo,Python,Cairo,Pycairo,我正在创建一个应用程序,它使用Cairo在图像上显示文本等 有没有一种方法可以在不修改高度的情况下更改文本宽度?我已经可以根据宽度调整字体大小了 一个理想的管理方法。它看起来不像是内置的,但我想知道我将使用哪些部件来构建该功能(或任何只修改宽度的功能)。Pango/PangoCairo 似乎提供了很多定制 它允许您指定字母间隔 我对这个框架还没有深入的了解,但它值得研究 发挥自己的作用 您还可以创建一个函数,将文本拆分为字符,显示每个字符,并在显示每个字符后将上下文向后移动一点。如下所示: #

我正在创建一个应用程序,它使用Cairo在图像上显示文本等

有没有一种方法可以在不修改高度的情况下更改文本宽度?我已经可以根据宽度调整字体大小了

一个理想的管理方法。它看起来不像是内置的,但我想知道我将使用哪些部件来构建该功能(或任何只修改宽度的功能)。

Pango/PangoCairo 似乎提供了很多定制

它允许您指定
字母间隔

我对这个框架还没有深入的了解,但它值得研究

发挥自己的作用 您还可以创建一个函数,将文本拆分为字符,显示每个字符,并在显示每个字符后将上下文向后移动一点。如下所示:

# This is just an example. It could definitely use improvement.
def foo(cr, text, tracking): 
    # Normal tracking = 0. Negative spacing shrinks, positive expands.

    i = 0
    for c in text:
        x, y = cr.get_current_point()
        cr.show_text(c)
        counter += 1
        cr.move_to( x - i*tracking, y)
您还可以在自己的上下文子类中定义此方法:

class myContext(Context):
    def foo(self, text, spacing):
        # replace every cr above with self
一旦你有了一个方法集,你就可以做foo(cr,“bob”,-3)来获得一个更苗条的bob

您还可以在代码中使用
cr.text\u区段(text)
来计算文本大小和缩放间距。据我所知,从开罗的上下文中获取字体大小并非易事