gpt4 book ai didi

r - Cowplot 中的 draw_image() 函数会导致 pdf 模糊

转载 作者:行者123 更新时间:2023-12-01 23:37:48 26 4
gpt4 key购买 nike

使用cowplot中的draw_image()函数读取矢量化pdf有时会导致图像严重模糊:

library(ggplot2)
library(cowplot)
library(magick)

# make pdf input as example
p <- ggplot(iris, aes(Sepal.Length, Sepal.Width, shape = Species)) +
geom_point() + scale_shape_manual(values = 21:23) + theme_classic()
ggsave("input.pdf", p, width = 6, height = 4.2)

# now draw with draw_image() and then write as png
fig <- ggdraw() + draw_image("input.pdf")
ggsave("output.png", fig, width = 1, height = .7, dpi = 1200) # blurred image

enter image description here

但是,读取 SVG 效果很好:

fig <- ggdraw() +
draw_image("http://jeroen.github.io/images/tiger.svg")
ggsave("output.png", fig, width = 1, height = .7, dpi = 1200)

enter image description here

此外,使用:

magick::image_read_pdf("input.pdf")

产生非模糊的输出。

最佳答案

我不完全确定为什么 SVG 和 pdf 的处理方式不同,或者当您使用 magick::image_read() 读取 pdf 时到底会发生什么(这就是 draw_image() 在内部使用),但一种解决方案是在 draw_image() 内部使用 magick::image_read_pdf()。函数magick::image_read_pdf()将pdf转换为光栅图像,我们可以使用密度参数指定我们想要的分辨率:

fig <- ggdraw() + draw_image(magick::image_read_pdf("input.pdf", density = 600))
ggsave("output.png", fig, width = 1, height = .7, dpi = 1200)

enter image description here

关于r - Cowplot 中的 draw_image() 函数会导致 pdf 模糊,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50026862/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com