如何为 bookdown / rmarkdown 网站重新缩放本地图像?

max*_*eld 4 jpeg r knitr r-markdown bookdown

我的*.jpegbookdown 项目(或 rmarkdown 网站,我认为并不重要)中有一个相当大的(~ 14MB)。这是一个外部的静态图像,尚未被 R 触及(到目前为止)。

我这样称呼图片:

```{r q-pic, echo=FALSE, out.width="100%", fig.cap="Q-Sorting during the 2016 CiviCon", dpi = 72}
include_graphics(path = "img/q-sorting3.jpg")
```
Run Code Online (Sandbox Code Playgroud)

我还通过opts_knit$set(fig.retina = 2).

我真的不在乎 PDF 有多大,但很明显,网站上大约 14MB 的图像非常糟糕。

有没有办法让knitr() rmarkdown() bookdown()工具链的某些元素可以自动将图像重新缩放到指定的适当分辨率?

我天真地假设,如果两者 out.widthdpi指定了,该图像将被重定(即:较小的文件大小)窗帘后面,但是,要么似乎并非如此,或者我使用它错了

Ps.:我知道有可能指定 adpi然后knitr找出合适的大小;那不是我关心的。我想,有点,相反

Kei*_*itt 5

我认为调整实际图像大小的唯一方法(不仅仅是它在 HTML 中的缩放方式)是将图像加载到 R 中并对其进行光栅化:

```{r fig.width=3}
library(jpeg)
library(grid)
img <- readJPEG("test.jpg")
grid.raster(img)
```
Run Code Online (Sandbox Code Playgroud)

(光栅化方法改编自:How to set size for local image using knitr for markdown?

这将导致较小的图像/HTML 文件。