使用R包memer的meme_text_bottom()添加文本时遇错误求助
解决memer包生成OprahGiveaway模因时的文本渲染错误
问题代码与错误信息
我使用R语言的memer包编写了如下代码:
library(memer) library(tidyverse) meme_get("OprahGiveaway") %>% meme_text_bottom("EVERYONE GETS A %>%!!!", size = 36)
执行后出现错误:
Error: rsession-arm64: NonconformingDrawingPrimitiveDefinition `text' @ error/draw.c/RenderMVGContent/4405
期望生成带有底部指定文本的OprahGiveaway模因图片,请求解决该问题。
解决方案
这个错误源于memer依赖的ImageMagick在文本渲染时的配置或兼容性问题(尤其常见于arm64架构),可以按以下步骤尝试修复:
- 升级ImageMagick:运行
system("magick --version")查看当前版本,若版本较旧,升级到最新稳定版。 - 显式指定可用字体:给
meme_text_bottom添加font参数,使用系统已安装的字体,示例:
可通过meme_get("OprahGiveaway") %>% meme_text_bottom("EVERYONE GETS A %>%!!!", size = 36, font = "Arial")system("magick -list font")命令列出系统所有可用字体,挑选存在的字体名称使用。 - 测试特殊字符影响:文本中的
%>%可能触发解析问题,先替换成普通文本(比如EVERYONE GETS A PIPE!!!)测试,确认是否是特殊字符导致的错误。 - 重置会话与包加载:重启R会话后重新加载memer和tidyverse包,避免会话残留的配置干扰。
内容的提问来源于stack exchange,提问作者Mango Malo
相关产品推荐
相关产品推荐

