r - 在 R 包中包含图像
问题描述
我正在尝试为我的公司创建一个包,其中会有一些自定义调色板和我们公司的徽标。到目前为止,我成功构建了包含所有必需调色板的包,但是在尝试包含徽标时我被卡住了。
我认为一旦标志被加载到 R 中,它只是另一个数据框,我可以简单地使用这个函数来存储它:
logo <- image_read("logo.png")
logo <- image_scale(logo, "50")
usethis::use_data(logo,company_logo)
但是,我遇到了一个错误:
错误:图像指针已失效。您不能在 R 会话之间保存或缓存图像对象。
现在我不确定我的目标是否可行?
解决方案
您可以在包中的子目录中安装其他文件inst
。例如inst/logos
,在您的包中创建一个目录并将您的徽标放在那里。安装软件包后,这会在您的软件包目录中创建一个logos
目录。然后,您可以system.file
在安装软件包时使用来访问图像。您可以在包中创建一个为您执行此操作的函数。例如:
company_logo <- function() {
magick::image_read(system.file("logos/logo.png", "MyCompanyPackage"))
}
存储使用结果不起作用的原因image_read
是save
返回的结果image_read
是指向包分配的一些内存的指针。保存结果时,只保存指针而不是指向的数据。
推荐阅读
- hibernate - 对象引用了一个未保存的瞬态实例 - 在刷新涉及的休眠主表之前保存瞬态实例
- android - 无法为不是由该项目构建的目标指定链接库
- elasticsearch - elasticsearch - 在“function_score”中获得中间分数
- javascript - 检查单选按钮是否以反应形式变脏/触摸
- ansible - 有什么方法可以在ansible中映射多个属性
- rabbitmq - 虚拟主机损坏时保持队列和交换
- django - 使用 django rest 框架中的 PATCH 更新计算字段时,不会更新计算字段
- sql - 获取每个计数详细信息的计数和详细信息
- node.js - Heroku Review App 不缓存 node_modules
- powershell - 如何在 PowerShell 中创建 AD 对象“RID 集”?