Включить изображение в пакеты R - PullRequest
0 голосов
/ 05 марта 2019

Я пытаюсь создать пакет для моей компании, в котором были бы несколько цветовых палитр и логотип нашей компании.Я успешно создал пакет, который содержит все необходимые цветовые палитры, но я застрял при попытке добавить логотип.

Я думал, что после загрузки логотипа в R это просто еще один фрейм данныхи я мог бы просто использовать эту функцию для ее хранения:

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

Однако я обнаружил ошибку:

Ошибка: указатель изображения мертв.Вы не можете сохранять или кэшировать объекты изображения между сеансами R.

Теперь я не уверен, что моя цель будет возможна?

1 Ответ

0 голосов
/ 05 марта 2019

Вы можете установить дополнительные файлы в подкаталогах под inst в вашем пакете.Например, создайте каталог inst/logos в вашем пакете и разместите там свои логотипы.Когда пакет установлен, это создает каталог logos в каталоге вашего пакета.Затем вы можете использовать system.file для доступа к изображениям, когда пакет установлен.Вы можете создать функцию в вашем пакете, которая сделает это за вас.Например:

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

Причина, по которой сохранение результата image_read с использованием save не работает, заключается в том, что результат, возвращаемый image_read, является указателем на некоторую память, выделенную пакетом,При сохранении результата сохраняется только указатель, а не данные, на которые он указывает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...