r - 如何删除在 R 中使用 png() 创建的图像周围的边距
问题描述
我正在尝试使用 R 覆盖两个 PNG 图像(不透明)。为此,我的逻辑如下:我使用readPNG()
. 然后,我添加了一个 alpha 通道abind()
,例如,0.5
为了使图像半透明,我设置为使用该通道。到目前为止,所有这些都运行良好,我的问题是,当我使用png()
输出图像覆盖图像时,会有白边。这总是会发生,即使我已将边距设置为0
using par()
。我错过了什么?
请在下面找到一个最小的工作示例:
library("png")
library("abind")
# Download two random pictures
pngURL1 <- "https://imgur.com/download/0ljEVEW"
pngURL2 <- "https://imgur.com/download/oShoMag"
download.file(pngURL1, "temp1.png", mode = "wb")
download.file(pngURL2, "temp2.png", mode = "wb")
# Load downloaded images and add alpha channel
img1 = readPNG("temp1.png")
img1 = abind::abind(img1, img1[,,1]) # add an alpha channel
img2 = readPNG("temp2.png")
img2 = abind::abind(img2, img2[,,1]) # add an alpha channel
# Make semi-transparent
img1[,,4] <- 0.5
img2[,,4] <- 0.5
# Create output image
png('test.png', width = 480, height = 360)
par(mar = c(0,0,0,0))
plot.new()
rasterImage(img1, 0, 0, 1, 1)
rasterImage(img2, 0, 0, 1, 1)
dev.off()
这将创建以下输出:带有不需要的边距的示例图像我想去掉边距,这样我只得到一个与我使用的输入图像具有完全相同尺寸的 PNG 图像。
非常感谢您的帮助!
解决方案
推荐阅读
- c# - 如何从模式堆栈优化方式中删除页面(具体)?
- fortran - 使用重载运算符打包
- html - 为什么负边距的边框和背景
下一个
- javascript - 反应:写入 json 文件或导出/下载 [无服务器]
- python - 为什么 f(x) 的导数是 'x' 'x' 而不是 pytorch 中的 1?
- ansible - ansible - 通过变量获取主机
- jquery - 动态图像未显示在 DIV 中
- getstream-io - getstream-io:使用带有聚合提要 ID 的 getActivities
- angular - 如何在 2 个 Angular 组件之间共享表单验证
- c# - 添加后字典数据被清除?