Añadir una máscara de transparencia a un PNG con R
2025-11-19
Añadir una máscara de transparencia a un PNG con R
Deseamos que un fichero png sea transparente. Esto significa convertir una array de 3 dimensiones a 4 dimensiones al añadir una capa indicándole dónde es la transparencia.
library(png) plot_array <- function(image,rowlimits=c(1L,dim(image)[1]),collimits=c(1L,dim(image)[2]),...){ par(mai=c(0,0,0,0),bty="n",bty = "n", xaxs = "i", yaxs = "i", xaxt = "n", yaxt = "n", col = "white") # margins plot(collimits, rowlimits, type = "n", xlab = "", ylab = "",...) rasterImage(image, 1, 1, dim(image)[2], dim(image)[1],...) } sello01 <- readPNG("sellouniovidegradado.png") plot_array(sello01) str(sello01) mask <- matrix(1, dim(sello01)[1],dim(sello01)[2]) mask[sello01[,,1]==1 & sello01[,,2]==1 & sello01[,,3]==1] <- 0 dim(mask) <- c(dim(sello01)[1],dim(sello01)[2]) str(mask) plot_array(mask) sello03 <- array(c(sello01,mask),dim=c(dim(sello01)[1],dim(sello01)[2],4)) plot_array(sello03) writePNG(sello03,"sellouniovidegradadomask.png")