我目前正在尝试使用"draw_image"功能显示一些PNG。更准确地说,这些是某些表情符号。
当我通过draw_image加载PNG时,它们不幸地被扭曲了,所以表情符号看起来像这样:
当然,表情符号应该更像这样:
第一节第一节第一节第二节第一节第三节第一
不幸的是,我目前没有达到我的目标与我的测试解决方案。例如,我已经尝试手动调整图片大小,减少高度或增加宽度。不幸的是没有成功。
如果你们中的任何人在我的代码中发现了一个bug(文章结束),或者有其他的解决方案,我将非常感激!
谢谢你,祝你星期天愉快!
代码:
bg <-
image_read(paste("randomimage.png", sep = ""))%>%
image_resize("1748x2480!")
dx <- ggdraw() +
draw_image(bg) +
draw_image(Emoji3, width = 1, height = 1, scale = 0.04)+
draw_image(Emoji2, width = 1, height = 1, scale = 0.04)+
draw_image(Emoji1, width = 1, height = 1, scale = 0.04)
grid.arrange(dx)
ggsave(path = "xxx", filename = paste("randomname.png", sep = ""), dx, width = 210, height = 297, units = "mm", dpi = 100)
1条答案
按热度按时间xxhby3vn1#
你可能歪曲了这句话中的形象:第一个月
请参阅ImageMagick示例--调整大小或缩放(一般技术)中的**忽略纵横比(“!”标志)**部分
当您保存图像时,可能会再次扭曲它们:
ggsave(path = "xxx", filename = paste("randomname.png", sep = ""), dx,width = 210, height = 297, units = "mm", dpi = 100)
请注意,图像高度(以像素为单位)为(
dpi = 100
)x(height = 297
)/(25.4毫米/英寸)= 1169。同样,图像宽度(以像素为单位)为(
dpi = 100
)x(width = 210
)/(每英寸25.4毫米)= 827。这导致1169/827或1.4的纵横比,即,高且瘦。
因此,您可以考虑“不”调整图像大小,或者,如果必须调整大小,请使用百分比:
image_resize("150%")
然后还要确保高度、宽度、单位和dpi会产生与原始表情符号相同的长宽比,而不是先确定输入长宽比,然后再计算高度、宽度、单位和dpi,你可以只指定高度 * 或 * 宽度,
ggsave
会处理其他维度。