如何使用/不使用转换以编程方式在图中使用.ICO
图像文件?
我的问题是针对R
的{{3}}的跟进,并提供了以下具体细节:
我不是在询问涉及在HTML
内转换图标的方法,例如在shiny
应用程序内部(作者:RStudio)。这当然是可能的。
图标.ICO
文件可以直接用在base-R图中,ggplot对象(作者:Hadley Wickham),格子图(作者:Deepayan Sarkar)?这种方法是否可以将输出打印到PDF
?
如果使用或不使用专用的ICO
库,将PNG
图标转换为R
。此方法将小心处理图标的图像大小,深度,透明度和其他可能重要的属性。
这样做的动机很简单,就是可以在绘图对象中使用许多图标的开源库,例如: How to convert .ICO to .PNG?,Inserting an image to ggplot2,Display custom image as geom_point。
在我引用顶部的问题Inserting an image to ggplot outside the chart area中,C#
和Python
中有代码示例,但R
中没有代码。
答案 0 :(得分:2)
在您的系统上安装ImageMagick(您的系统 - 它不是R包)。它是一套开源图像处理和转换工具。
然后,您可以从命令行使用convert foo.ico foo.png
转换图标。如果ICO文件包含多个图标,则会foo-1.ico
到foo-N.ico
。如果convert
无法正常工作,那么您还没有正确安装ImageMagick。
如果您想从R执行此操作,请使用system
功能:
name = "foo"
system(paste0("convert ",name,".ico ",name,".png"))
然后使用生成的PNG文件。它们将保留所有属性(透明度等),并且可以在这些包中使用任何其他PNG文件,这超出了本问题的范围。您现在有了PNG文件。
一个可以写一个R包来本地读取ICO文件(规范在维基百科上)但是当ImageMagick存在并且做得如此出色时,它似乎有点无意义。使用它。
答案 1 :(得分:2)
现在有magick
个套餐,您不再需要使用system
:
library(magick)
path <- "magic.png" # wherever you want to save
image <- image_read("https://rpubs.com/favicon.ico") # works with local path as well
在R studio中,这将在绘图窗口中打印我们的图像,对于ico文件,它会显示文件中可用的不同图标。
image
然后您可以保存所需的格式:
image_write(image,path,"png")
file.exists(path)
# [1] TRUE