text_width, text_height = draw.getfont(str(numbers[i]), font=font) TypeError: getfont() got an unexpected keyword argument 'font'
时间: 2024-09-28 09:04:12 浏览: 25
这段代码看起来是在Python中使用`draw`对象的一个方法`getfont`来获取字符串`numbers[i]`的字体大小,这里的`text_width`和`text_height`可能是用来存储计算出的文字宽度和高度。然而,报错信息提示`getfont()`函数接收到一个未预期的关键字参数`font`。
`getfont()`这个方法可能并不接受名为`font`的参数,这通常是用于设置字体的属性,但在当前上下文中它可能不是一个有效的选项。可能是你在使用`font`变量的时候有误,例如应该直接将`font`作为`getfont()`的参数传递,而不是作为关键字参数。
正确的语法可能是:
```python
font = draw.getfont()
text_width, text_height = draw.getfont(text=numbers[i], font=font)
```
或者如果`draw`对象本身已经有一个默认的字体,可以直接忽略`font`参数:
```python
text_width, text_height = draw.getfont(numbers[i])
```
相关问题
--------------------------------------------------------------------------- AttributeError Traceback (most recent call last) <ipython-input-36-6da7a0d23674> in <module> 13 height=2500 14 ) ---> 15 wordcloud.fit_words(num)#传入词频 16 17 #展示词云 C:\ProgramData\Anaconda3\lib\site-packages\wordcloud\wordcloud.py in fit_words(self, frequencies) 387 self 388 """ --> 389 return self.generate_from_frequencies(frequencies) 390 391 def generate_from_frequencies(self, frequencies, max_font_size=None): # noqa: C901 C:\ProgramData\Anaconda3\lib\site-packages\wordcloud\wordcloud.py in generate_from_frequencies(self, frequencies, max_font_size) 451 font_size = self.height 452 else: --> 453 self.generate_from_frequencies(dict(frequencies[:2]), 454 max_font_size=self.height) 455 # find font sizes C:\ProgramData\Anaconda3\lib\site-packages\wordcloud\wordcloud.py in generate_from_frequencies(self, frequencies, max_font_size) 506 font, orientation=orientation) 507 # get size of resulting text --> 508 box_size = draw.textbbox((0, 0), word, font=transposed_font, anchor="lt") 509 # find possible places using integral image: 510 result = occupancy.sample_position(box_size[3] + self.margin, C:\ProgramData\Anaconda3\lib\site-packages\PIL\ImageDraw.py in textbbox(self, xy, text, font, anchor, spacing, align, direction, features, language, stroke_width, embedded_color) 565 font = self.getfont() 566 mode = "RGBA" if embedded_color else self.fontmode --> 567 bbox = font.getbbox( 568 text, mode, direction, features, language, stroke_width, anchor 569 ) AttributeError: 'TransposedFont' object has no attribute 'getbbox'
这个错误是因为 `wordcloud` 库的一个 bug,在使用旋转的字体时会出现。具体地说,它是因为 `TransposedFont` 对象没有 `getbbox()` 方法而抛出的 `AttributeError`。
要解决这个问题,你可以在调用 `textbbox()` 方法时,传入 `font.font` 属性而不是 `TransposedFont` 对象本身。例如:
```
box_size = draw.textbbox((0, 0), word, font=transposed_font.font, anchor="lt")
```
这个代码将会使用 `TransposedFont` 对象的 `font` 属性,该属性是一个普通的 `PIL` 字体对象,并且具有 `getbbox()` 方法,因此不会出现 `AttributeError`。
self.font = core.getfont( OSError: cannot open resource
这个错误通常是由于缺少字体文件或者字体文件路径不正确导致的。你可以尝试以下几种方法:
1. 确认字体文件路径是否正确。你可以使用绝对路径或相对路径,如果使用相对路径,需要注意当前工作目录是否正确。
2. 确认字体文件是否存在。如果字体文件不存在,需要重新下载或安装字体。
3. 尝试使用其他字体文件。有时候某些字体文件会出现问题,可以尝试使用其他字体文件,看是否可以解决问题。
4. 确认你的程序有读取字体文件的权限。如果没有权限,需要修改权限或者更换字体文件路径。
希望以上方法可以帮助你解决问题。
阅读全文