我有一個在內存中自動生成的PNG圖像,而不是從磁盤加載它。我當然可以先將它保存到磁盤上,但我寧願不這樣做。我想在ggplot2圖的某處顯示該圖像,但無法找到正確的包或函數來執行此操作。如何將內存中的png圖像添加到圖中?
我在記憶中的圖像是例如
x <- "data:image/png;base64,..."
UPDATE一個現實的用例,和我試圖使用回答#1
library(qrencoder)
x <- qrencode_png("http://rud.is/b")
x
[1] "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAAAAACMfPpKAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAfElEQVQYlU2QWwrEMAwDR0vuf+XZj8qJSyjIyNYjAkAMQNFhkBCKzoNiin70kxKBN41ENuf7+9AZWQOGRx/2m4TeKy2YO0GyDpwszW5EUCs/ur78NZtGvSa8azdPDGttsonot8LtDFNnrs4yLSbuJk0ajnV3vevhCxUj4Q+R11n764g4WgAAAABJRU5ErkJggg=="
myImage <- png::readPNG(x)
> Error in png::readPNG(x) :
> unable to open
> data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAAAAACMfPpKAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAfElEQVQYlU2QWwrEMAwDR0vuf+XZj8qJSyjIyNYjAkAMQNFhkBCKzoNiin70kxKBN41ENuf7+9AZWQOGRx/2m4TeKy2YO0GyDpwszW5EUCs/ur78NZtGvSa8azdPDGttsonot8LtDFNnrs4yLSbuJk0ajnV3vevhCxUj4Q+R11n764g4WgAAAABJRU5ErkJggg==
我也曾嘗試錯誤的下面,但我得到不同的錯誤:
qrGrob <- grid::gTree(children=gList(grid::rasterGrob(x)))
或
qrGrob <- grid::gTree(children=gList(grid::rasterGrob(x)))
看看'magick'包。它現在有一個設備,你可以渲染ggplot對象,然後在其上構建內存中的png圖像。 – hrbrmstr
@hrbrmstr感謝您的評論。我檢查了'magick'包,但是我發現沒有明顯的方式來覆蓋我的OP使用案例。這裏有很多函數以圖像作爲參數,但只有一個已經使用自己的API讀取。 –