r - 在 R 包中包含图像

标签 r package

我正在尝试为我的公司创建一个包,其中会有一些自定义调色板和我们公司的 Logo 。到目前为止,我成功构建了包含所有必需调色板的包,但是在尝试包含 Logo 时我被卡住了。

我认为一旦标志被加载到 R 中,它只是另一个数据框,我可以简单地使用这个函数来存储它:

logo <-  image_read("logo.png")
logo <- image_scale(logo, "50")    
usethis::use_data(logo,company_logo)

但是,我遇到了一个错误:

Error: Image pointer is dead. You cannot save or cache image objects between R sessions.



现在我不确定我的目标是否可行?

最佳答案

您可以在 inst 下的子目录中安装其他文件在你的包裹里。例如创建目录inst/logos在您的包装中并将您的 Logo 放在那里。安装软件包后,会创建一个目录 logos在你的包目录中。然后你可以使用 system.file安装包时访问图像。您可以在包中创建一个为您执行此操作的函数。例如:

company_logo <- function() {
  magick::image_read(system.file("logos/logo.png", "MyCompanyPackage"))
}

存储image_read结果的原因使用 save不行,是image_read返回的结果是指向包分配的一些内存的指针。保存结果时,只保存指针而不是指向的数据。

关于r - 在 R 包中包含图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54993463/

相关文章:

c++ - 无法编译R包

xcode - 开发 Flutter iOS 插件包 - Xcode 项目中的 Pods 文件夹为空

python - 可以导入 python 包,但不能导入其模块

r - 特定值的累积平均值

r - 将自定义函数应用于 r 中数据帧中的每一行

r - ggplot2 和 TikzDevice - 删除空白

python - 如何为我用于多个不同项目的模块创建本地 Python 包

r - 从 R 中的数据帧中提取复杂的子集

使用 data.table 重新编码变量

r - Fortran 代码和发现没有调用 : 'R_registerRoutines' , 'R_useDynamicSymbols'